From 13f0ccda228dd69c339c38460e0eea0dbaa67d9e Mon Sep 17 00:00:00 2001
From: Tony Narlock
Date: Mon, 5 Feb 2024 15:00:51 -0600
Subject: [PATCH 001/136] feat!(Window): Set option flags
---
src/libtmux/window.py | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/src/libtmux/window.py b/src/libtmux/window.py
index df63e19b6..25d62fe35 100644
--- a/src/libtmux/window.py
+++ b/src/libtmux/window.py
@@ -434,7 +434,18 @@ def select_layout(self, layout: str | None = None) -> Window:
return self
- def set_window_option(self, option: str, value: int | str) -> Window:
+ def set_window_option(
+ self,
+ option: str,
+ value: int | str,
+ format: bool | None = None,
+ unset: bool | None = None,
+ unset_panes: bool | None = None,
+ prevent_overwrite: bool | None = None,
+ suppress_warnings: bool | None = None,
+ append: bool | None = None,
+ g: bool | None = None,
+ ) -> Window:
"""Set option for tmux window.
Wraps ``$ tmux set-window-option
----
-
## 🐍 What is libtmux?
libtmux is a typed Python API over [tmux], the terminal multiplexer. Stop shelling out and parsing `tmux ls`. Instead, interact with real Python objects: `Server`, `Session`, `Window`, and `Pane`. The same API powers [tmuxp], so it stays battle-tested in real-world workflows.
From 0c54bd8fbb43d10e23d8f4115109fb94c2b247f3 Mon Sep 17 00:00:00 2001
From: Tony Narlock
Date: Sun, 30 Nov 2025 15:10:53 -0600
Subject: [PATCH 134/136] docs(index): fix toctree formatting, remove hide-toc
why: The hide-toc frontmatter was suppressing the sidebar ToC,
and the toctree directive was malformed (stray :hidden: outside block).
what:
- Remove hide-toc: true frontmatter
- Remove stray "## Table of Contents" and ":hidden:" text
- Add :hidden: to first toctree directive (matches libvcs pattern)
---
docs/index.md | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/docs/index.md b/docs/index.md
index 812510f8d..341532ee9 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,7 +1,3 @@
----
-hide-toc: true
----
-
(index)=
# libtmux
@@ -10,12 +6,9 @@ hide-toc: true
:start-after:
```
-## Table of Contents
-
-:hidden:
-
```{toctree}
:maxdepth: 2
+:hidden:
quickstart
about
From 48022fd804db53a3232fb464dd09a73fa2edd501 Mon Sep 17 00:00:00 2001
From: Tony Narlock
Date: Sun, 30 Nov 2025 15:32:02 -0600
Subject: [PATCH 135/136] Tag v0.50.0a0
---
pyproject.toml | 2 +-
src/libtmux/__about__.py | 2 +-
uv.lock | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 3f60b27ee..9b7bf593c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "libtmux"
-version = "0.49.0"
+version = "0.50.0a0"
description = "Typed library that provides an ORM wrapper for tmux, a terminal multiplexer."
requires-python = ">=3.10,<4.0"
authors = [
diff --git a/src/libtmux/__about__.py b/src/libtmux/__about__.py
index 6175e07c8..55bc20ebf 100644
--- a/src/libtmux/__about__.py
+++ b/src/libtmux/__about__.py
@@ -4,7 +4,7 @@
__title__ = "libtmux"
__package_name__ = "libtmux"
-__version__ = "0.49.0"
+__version__ = "0.50.0a0"
__description__ = "Typed scripting library / ORM / API wrapper for tmux"
__email__ = "tony@git-pull.com"
__author__ = "Tony Narlock"
diff --git a/uv.lock b/uv.lock
index 9655a2094..01b4eea69 100644
--- a/uv.lock
+++ b/uv.lock
@@ -482,7 +482,7 @@ wheels = [
[[package]]
name = "libtmux"
-version = "0.49.0"
+version = "0.50.0a0"
source = { editable = "." }
[package.dev-dependencies]
From 84175d01845bb46a9ce837339432114b1f39521c Mon Sep 17 00:00:00 2001
From: Tony Narlock
Date: Sun, 30 Nov 2025 15:35:53 -0600
Subject: [PATCH 136/136] Tag v0.50.0
---
CHANGES | 4 +++-
pyproject.toml | 2 +-
src/libtmux/__about__.py | 2 +-
uv.lock | 4 ++--
4 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/CHANGES b/CHANGES
index 792466009..56139c68a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -28,12 +28,14 @@ $ uv add libtmux --prerelease allow
$ uvx --from 'libtmux' --prerelease allow python
```
-## libtmux 0.50.x (Yet to be released)
+## libtmux 0.51.x (Yet to be released)
_Future release notes will be placed here_
+## libtmux 0.50.0 (2025-11-30)
+
### Overview
libtmux 0.50 brings a major enhancement to option and hook management. The new
diff --git a/pyproject.toml b/pyproject.toml
index 9b7bf593c..2462b9592 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "libtmux"
-version = "0.50.0a0"
+version = "0.50.0"
description = "Typed library that provides an ORM wrapper for tmux, a terminal multiplexer."
requires-python = ">=3.10,<4.0"
authors = [
diff --git a/src/libtmux/__about__.py b/src/libtmux/__about__.py
index 55bc20ebf..ec485ab9f 100644
--- a/src/libtmux/__about__.py
+++ b/src/libtmux/__about__.py
@@ -4,7 +4,7 @@
__title__ = "libtmux"
__package_name__ = "libtmux"
-__version__ = "0.50.0a0"
+__version__ = "0.50.0"
__description__ = "Typed scripting library / ORM / API wrapper for tmux"
__email__ = "tony@git-pull.com"
__author__ = "Tony Narlock"
diff --git a/uv.lock b/uv.lock
index 01b4eea69..b585c21cc 100644
--- a/uv.lock
+++ b/uv.lock
@@ -313,7 +313,7 @@ name = "exceptiongroup"
version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "typing-extensions", marker = "python_full_version < '3.13'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
wheels = [
@@ -482,7 +482,7 @@ wheels = [
[[package]]
name = "libtmux"
-version = "0.50.0a0"
+version = "0.50.0"
source = { editable = "." }
[package.dev-dependencies]