1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
(properties)=
# Properties
Get access to the data attributes behind tmux sessions, windows and panes.
This is done through accessing the [formats][formats] available in `list-sessions`,
`list-windows` and `list-panes`.
Open two terminals:
Terminal one: start tmux in a separate terminal:
```console
$ tmux
```
Terminal two: `python` or `ptpython` if you have it:
```console
$ python
```
Import libtmux:
```python
>>> import libtmux
```
Attach default tmux {class}`~libtmux.Server` to `t`:
```python
>>> import libtmux
>>> t = libtmux.Server()
>>> t
Server(socket_path=/tmp/tmux-.../default)
```
## Session
Get the {class}`~libtmux.Session` object:
```python
>>> session = server.sessions[0]
>>> session
Session($1 libtmux_...)
```
Quick access to basic attributes:
```python
>>> session.session_name
'libtmux_...'
>>> session.session_id
'$1'
```
To see all attributes for a session:
```python
from libtmux.neo import Obj
>>> sorted(list(Obj.__dataclass_fields__.keys()))
['session_attached', 'session_created', ...]
```
```python
>>> session.session_windows
'...'
```
## Windows
The same concepts apply for {class}`~libtmux.Window`:
```python
>>> window = session.active_window
>>> window
Window(@1 ...:..., Session($1 ...))
```
Basics:
```python
>>> window.window_name
'...'
>>> window.window_id
'@1'
>>> window.window_height
'...'
>>> window.window_width
'...'
```
Use attribute access for details not accessible via properties:
```python
>>> window.window_panes
'1'
```
## Panes
Get the {class}`~libtmux.Pane`:
```python
>>> pane = window.active_pane
>>> pane
Pane(%1 Window(@1 ...:..., Session($1 libtmux_...)))
```
Basics:
```python
>>> pane.pane_current_command
'...'
>>> type(pane.pane_current_command)
<class 'str'>
>>> pane.pane_height
'...'
>>> pane.pane_width
'...'
>>> pane.pane_index
'0'
```
[formats]: http://man.openbsd.org/OpenBSD-5.9/man1/tmux.1#FORMATS
|