@@ -55,7 +55,7 @@ unified, typed API for managing tmux options and hooks across all object types.
5555
5656### What's New
5757
58- #### Unified Options API (#516 )
58+ ### Unified Options API (#516 )
5959
6060All tmux objects now share a consistent options interface through
6161{class}` ~options.OptionsMixin ` :
@@ -104,7 +104,7 @@ window.unset_option('automatic-rename')
104104| ` suppress_warnings ` | ` -q ` | Suppress warnings |
105105| ` append ` | ` -a ` | Append to existing value |
106106
107- #### Hook Management (#516 )
107+ ### Hook Management (#516 )
108108
109109New {class}` ~hooks.HooksMixin ` provides programmatic control over tmux hooks:
110110
@@ -151,7 +151,7 @@ session.set_hooks('session-renamed', {
151151| ` run_hook(hook) ` | Run a hook immediately |
152152| ` set_hooks(hook, values) ` | Set multiple indexed hooks at once |
153153
154- #### SparseArray for Indexed Options (#516 )
154+ ### SparseArray for Indexed Options (#516 )
155155
156156tmux uses sparse indexed arrays for options like ` command-alias[0] ` ,
157157` command-alias[99] ` , ` terminal-features[0] ` . Python lists can't represent
@@ -173,15 +173,15 @@ gaps in indices, so libtmux introduces {class}`~_internal.sparse_array.SparseArr
173173[' first' , ' ninety-ninth' ]
174174```
175175
176- #### New Constants (#516 )
176+ ### New Constants (#516 )
177177
178178- {class}` ~constants.OptionScope ` enum: ` Server ` , ` Session ` , ` Window ` , ` Pane `
179179- ` OPTION_SCOPE_FLAG_MAP ` : Maps scope to tmux flags (` -s ` , ` -w ` , ` -p ` )
180180- ` HOOK_SCOPE_FLAG_MAP ` : Maps scope to hook flags
181181
182182### Breaking changes
183183
184- #### Deprecated Window methods (#516 )
184+ ### Deprecated Window methods (#516 )
185185
186186The following methods are deprecated and will be removed in a future release:
187187
@@ -214,7 +214,7 @@ window.set_option('automatic-rename', True)
214214
215215### Breaking Changes
216216
217- #### tmux 1.8 to 3.1c support removed (#608 )
217+ ### tmux 1.8 to 3.1c support removed (#608 )
218218
219219Support for tmux versions below 3.2a has been removed. This completes the
220220deprecation announced in v0.48.0.
@@ -228,7 +228,7 @@ deprecation announced in v0.48.0.
228228
229229### Breaking Changes
230230
231- #### Minimum tmux version bumped to 3.2+ (606)
231+ ### Minimum tmux version bumped to 3.2+ (606)
232232
233233tmux versions below 3.2a are now deprecated. libtmux 0.48.0 will be the last
234234version to support tmux below 3.2. This is to ensure support for hooks, options,
@@ -243,7 +243,7 @@ release. Set `LIBTMUX_SUPPRESS_VERSION_WARNING=1` to suppress the warning.
243243
244244### What's new
245245
246- #### tmux 3.6 support (#607 )
246+ ### tmux 3.6 support (#607 )
247247
248248Added tmux 3.6 to test grid and ` TMUX_MAX_VERSION ` 3.4 -> 3.6.
249249
@@ -288,7 +288,7 @@ be a few months in waiting (watchers / snapshots are in development in #587).
288288
289289### Breaking
290290
291- #### Imports removed from libtmux.test (#580 )
291+ ### Imports removed from libtmux.test (#580 )
292292
293293Root-level of imports from ` libtmux.test ` are no longer possible.
294294
@@ -324,7 +324,7 @@ from libtmux.test.constants import (
324324
325325### Development
326326
327- #### Test helpers: Increased coverage (#580 )
327+ ### Test helpers: Increased coverage (#580 )
328328
329329Several improvements to the test helper modules:
330330
@@ -338,7 +338,7 @@ Several improvements to the test helper modules:
338338
339339### Breaking Changes
340340
341- #### Test helpers: Refactor
341+ ### Test helpers: Refactor
342342
343343Test helper functionality has been split into focused modules (#578 ):
344344
@@ -403,7 +403,7 @@ from libtmux.test.temporary import temp_session, temp_window
403403
404404### New Features
405405
406- #### Context Managers support (#566 )
406+ ### Context Managers support (#566 )
407407
408408Added context manager support for all major object types:
409409
@@ -430,7 +430,7 @@ This makes it easier to write clean, safe code that properly cleans up tmux reso
430430
431431### New Features
432432
433- #### Server Initialization Callbacks
433+ ### Server Initialization Callbacks
434434
435435Server now accepts 2 new optional params, ` socket_name_factory ` and ` on_init ` callbacks (#565 ):
436436
@@ -439,7 +439,7 @@ Server now accepts 2 new optional params, `socket_name_factory` and `on_init` ca
439439- Useful for creating multiple servers with unique names and tracking server instances
440440- Socket name factory is tried after socket_name, maintaining backward compatibility
441441
442- #### New test fixture: ` TestServer `
442+ ### New test fixture: ` TestServer `
443443
444444Add ` TestServer ` pytest fixture for creating temporary tmux servers (#565 ):
445445
@@ -493,7 +493,7 @@ Add `TestServer` pytest fixture for creating temporary tmux servers (#565):
493493
494494### Development
495495
496- #### chore: Implement PEP 563 deferred annotation resolution (#555 )
496+ ### chore: Implement PEP 563 deferred annotation resolution (#555 )
497497
498498- Add ` from __future__ import annotations ` to defer annotation resolution and reduce unnecessary runtime computations during type checking.
499499- Enable Ruff checks for PEP-compliant annotations:
@@ -549,13 +549,13 @@ _Maintenance only, no bug fixes or new features_
549549
550550### Breaking changes
551551
552- #### Project and package management: poetry to uv (#547 )
552+ ### Project and package management: poetry to uv (#547 )
553553
554554[ uv] is the new package and project manager for the project, replacing Poetry.
555555
556556[ uv ] : https://github.com/astral-sh/uv
557557
558- #### Build system: poetry to hatchling (#547 )
558+ ### Build system: poetry to hatchling (#547 )
559559
560560[ Build system] moved from [ poetry] to [ hatchling] .
561561
@@ -659,7 +659,7 @@ _Maintenance only, no bug fixes or new features_
659659
660660### Breaking changes
661661
662- #### Command target change (#535 )
662+ ### Command target change (#535 )
663663
664664Commands: All ` cmd() ` methods using custom or overridden targets must use the keyword argument
665665` target ` . This avoids entanglement with inner shell values that include ` -t ` for
@@ -674,7 +674,7 @@ other purposes. These methods include:
674674
675675### Breaking changes
676676
677- #### Improved new sessions (#532 )
677+ ### Improved new sessions (#532 )
678678
679679- ` Session.new_window() ` :
680680
@@ -686,7 +686,7 @@ other purposes. These methods include:
686686
687687[ PEP 3102 ] : https://www.python.org/dev/peps/pep-3102/
688688
689- #### Improved window splitting (#532 )
689+ ### Improved window splitting (#532 )
690690
691691- ` Window.split_window() ` to {meth}` Window.split() `
692692
@@ -701,7 +701,7 @@ other purposes. These methods include:
701701
702702 - Learned ` zoom `
703703
704- #### Tweak: Pane position (#532 )
704+ ### Tweak: Pane position (#532 )
705705
706706It's now possible to retrieve the position of a pane in a window via a
707707` bool ` helper::
@@ -811,31 +811,31 @@ _Maintenance only, no bug fixes or new features_
811811
812812## libtmux 0.29.0 (2024-02-16)
813813
814- #### Fixes
814+ ### Fixes
815815
816816- Use {exc}` DeprecationWarning ` for APIs set to be deprecated (#526 )
817817
818- #### Testing
818+ ### Testing
819819
820820- pytest: Ignore {exc}` DeprecationWarning ` by default (#526 )
821821
822822## libtmux 0.28.1 (2024-02-15)
823823
824824_ Maintenance only, no bug fixes or new features_
825825
826- #### Testing
826+ ### Testing
827827
828828- CI: Bump actions to node 20+ versions
829829
830- #### Documentation
830+ ### Documentation
831831
832832- Refine docs and add migration for v0.28.0
833833
834834## libtmux 0.28.0 (2024-02-14)
835835
836836### Breaking changes
837837
838- #### Detached / unselected by default (#523 )
838+ ### Detached / unselected by default (#523 )
839839
840840To ensure consistency and principle of least surprise, keep these set to
841841not use ` -a ` unless explicitly specified.
@@ -1240,7 +1240,7 @@ _Maintenance only, no bug fixes or new features_
12401240
12411241### New features
12421242
1243- #### Detect if server active (#448 )
1243+ ### Detect if server active (#448 )
12441244
12451245- ` Server.is_alive() `
12461246- ` Server.raise_if_dead() `
0 commit comments