libtmux.data/from-capture creates every value in this reference. snapshot!
and the *! listing functions acquire one captured graph; data/windows,
data/panes, data/active-window and data/active-pane traverse it without
I/O. Scalar access is ordinary Clojure keyword lookup and is also local.
Every owning map has its documented key, even when the value is nil because
tmux did not report an optional value. A missing relationship means the parent
or target was absent from an otherwise successful capture. Failed acquisition
throws; it is never an empty graph.
data/data removes every :tmux/ref. The ref is the only effect authority;
editing :session/id, :window/id or :pane/id changes a map, not tmux.
data/same-entity? compares :tmux/identity. data/same-link? also compares
the window placement in :tmux/link; it does not establish a daemon generation
or detect an unseen identical unlink-and-relink replacement.
:tmux/refis the Java handle.data/dataremoves it; effects andFilterExprneed it, while identity does not.:tmux/identityis always-present endpoint, server-PID, kind and physical-ID data.same-entity?compares it.:tmux/linkexists only on windows and panes. It holds session, window and index occurrence context;same-link?compares it.:tmux/realmand:tmux/serverare always-present identity text. Neither has a Java filter field.:tmux/pidis an integer ornil; the key stays present when tmux does not report a daemon or pane PID. It has no Java filter field.:tmux/kindis always-present:server,:session,:window,:paneor:clientidentity data. It has no Java filter field.:tmux/idis always-present physical identity text. Editing it cannot retarget an effect, and it has no Java filter field.:tmux/captured-atis a root-onlyInstant;data/datawrites ISO-8601 text.:tmux/versionis root-only text ornilwhen unavailable. Neither has a Java filter field.
:tmux/sessions,:tmux/windows,:tmux/panesand:tmux/clientsare root-only captured vectors. They have no root Java relation.:session/idand:session/nameare always-present text.Session_/idandSession_/namesupport Java filtering.:session/attached?is an always-present Boolean.Session_/attachedsupports Java filtering.:session/windowsis an always-present local vector relation.data/windowstraverses it andSession_/windowsis the canonical Java relation.
:window/idis always-present underlying-window text across links.Window_/idsupports Java filtering.:window/indexis the always-present index within:tmux/link.Window_/indexsupports Java filtering.:window/nameis always-present text.Window_/namesupports Java filtering.:window/active?is an always-present Boolean for this link's session.Window_/activesupports Java filtering.:window/linked?is an always-present Boolean stating that the underlying window has another link.Window_/linkedsupports Java filtering.:window/widthand:window/heightare always-present captured cell sizes;:window/layoutis always-present layout text. They have no Java fields.:window/panesis an always-present local vector relation.data/panestraverses it andWindow_/panesis the canonical Java relation.:pane/idis always-present physical-pane text;Pane_/idsupports Java filtering.:pane/indexis an always-present window index;Pane_/indexsupports Java filtering.:pane/active?is an always-present Boolean for the captured window.Pane_/activesupports Java filtering.:pane/current-commandand:pane/current-pathare always-present tmux text.Pane_/commandandPane_/pathsupport Java filtering.:pane/floating?is Boolean ornilwhen tmux does not report it. The key stays present and it has no Java field.:pane/widthand:pane/heightare always-present cell sizes;Pane_/widthandPane_/heightsupport Java filtering.:pane/leftand:pane/topare always-present captured positions;Pane_/leftandPane_/topsupport Java filtering.:pane/titleis always-present text;Pane_/titlesupports Java filtering.:pane/pidis an integer ornilwhen tmux does not report it. The key stays present and it has no Java field.:pane/edgesis an always-present map with unqualified Boolean edge keys. It has no Java field.
:client/nameis always-present tmux client text;Client_/namesupports Java filtering.:client/sessionis a session map ornilwhen no session is attached. The key stays present andClient_/sessionis the canonical Java relation.:client/active-windowand:client/active-paneare a captured map ornilwhen no attached session supplies them. Their keys stay present and they have no Java fields.
Java expressions always evaluate the preserved Java ref through
data/predicate or data/matching; they never evaluate edited or detached
maps. Pane_ has no registered pane-to-window relation, so use captured
traversal for that direction instead of inventing a canonical Java relation.