# LibTmux::Configuration

- **Package:** LibTmux
- **Language:** Raku
- **Kind:** module
- **Source:** https://github.com/libtmux/libtmux-raku/blob/e76160bcce6e03976d49424da15b7c31afb2c68e/lib/LibTmux/Configuration.rakumod#L3
- **Page:** https://libtmux.org/en/raku/latest/reference/libtmux-configuration/

# Configuration and stored commands

Options, Environment, Buffers, Hooks and KeyBindings are value-only facades
bound to an endpoint and daemon incarnation. Construction and schema access
perform no I/O. Each operation owns and closes its temporary command runtime;
it checks daemon identity and applies one timeout and output bound.

Options use source-qualified types and ranges from :obj:`LibTmux::Catalogue <LibTmux::Catalogue>`.
Flags require Bool, numeric options reject Bool, and array writes require an
explicit index. ` entries ` preserves inherited provenance; ` get ` returns a
native scalar or an indexed Map. Unknown native options use the explicitly
named raw operations. User options in the typed API use ` @ ` followed by
letters, digits, underscores or hyphens. Native printed command values are
source text, not parsed Invocation values.

Environment reads distinguish an absent entry, an explicit removed marker,
and hidden entries. ` :hidden ` selects hidden entries only. Environment names
use the portable variable alphabet. ` get ` requests only that name; ` list `
refuses a native entry whose name falls outside the declared alphabet.
Values preserve bytes through UTF8-C8;
reading the shell-shaped output never executes it. Buffer content is acquired
separately as Blob and may contain NUL.

Hooks and key bindings accept :obj:`LibTmux::Command::Invocation <LibTmux::Command::Invocation>` for commands
to store. Reads preserve tmux's printed command source without executing or
reconstructing it. Legacy key listings mark notes Unloaded; modern projected
listings capture them. Key table names use letters, digits, underscores or
hyphens so legacy native listings remain unambiguous.

Hook ` run ` acknowledges queuing. Paste and other mutations acknowledge tmux
commands; they do not prove that a pane application consumed input or that a
hook's asynchronous work completed. Timeouts after dispatch cannot roll back
server effects. Captured values do not refresh themselves.

## Members

### Collections and queries

- [`Buffers`](/en/raku/latest/reference/libtmux-configuration-buffers/) (class): Server-scoped paste buffers with binary load and save operations.

### Other members

- [`BufferInfo`](/en/raku/latest/reference/libtmux-configuration-bufferinfo/) (class): Buffer metadata is separate from explicitly acquired binary contents.
- [`Environment`](/en/raku/latest/reference/libtmux-configuration-environment/) (class): Session or global environment, including hidden and removed entries.
- [`EnvironmentValue`](/en/raku/latest/reference/libtmux-configuration-environmentvalue/) (class): Environment absence and an explicit removed marker are different states.
- [`Hooks`](/en/raku/latest/reference/libtmux-configuration-hooks/) (class): Named hook command arrays. Reading a hook never executes its command source.
- [`KeyBinding`](/en/raku/latest/reference/libtmux-configuration-keybinding/) (class): Captured binding metadata. Legacy listings leave note-state Unloaded.
- [`KeyBindings`](/en/raku/latest/reference/libtmux-configuration-keybindings/) (class): Server key tables. Invocation keeps stored command arguments distinct.
- [`Options`](/en/raku/latest/reference/libtmux-configuration-options/) (class): Typed native options. Reads and writes are explicit daemon operations.
- [`OptionValue`](/en/raku/latest/reference/libtmux-configuration-optionvalue/) (class): One observed option value. The source schema determines its native scalar type.
