Skip to content

Commit 7c023e1

Browse files
committed
feat!(Window): Set option flags
1 parent 136defc commit 7c023e1

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

src/libtmux/window.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,18 @@ def select_layout(self, layout: t.Optional[str] = None) -> "Window":
326326

327327
return self
328328

329-
def set_window_option(self, option: str, value: t.Union[int, str]) -> "Window":
329+
def set_window_option(
330+
self,
331+
option: str,
332+
value: t.Union[int, str],
333+
format: t.Optional[bool] = None,
334+
unset: t.Optional[bool] = None,
335+
unset_panes: t.Optional[bool] = None,
336+
prevent_overwrite: t.Optional[bool] = None,
337+
suppress_warnings: t.Optional[bool] = None,
338+
append: t.Optional[bool] = None,
339+
g: t.Optional[bool] = None,
340+
) -> "Window":
330341
"""Set option for tmux window.
331342
332343
Wraps ``$ tmux set-window-option <option> <value>``.
@@ -344,16 +355,46 @@ def set_window_option(self, option: str, value: t.Union[int, str]) -> "Window":
344355
:exc:`exc.OptionError`, :exc:`exc.UnknownOption`,
345356
:exc:`exc.InvalidOption`, :exc:`exc.AmbiguousOption`
346357
"""
358+
flags: list[str] = []
347359
if isinstance(value, bool) and value:
348360
value = "on"
349361
elif isinstance(value, bool) and not value:
350362
value = "off"
351363

364+
if unset is not None and unset:
365+
assert isinstance(unset, bool)
366+
flags.append("-u")
367+
368+
if unset_panes is not None and unset_panes:
369+
assert isinstance(unset_panes, bool)
370+
flags.append("-U")
371+
372+
if format is not None and format:
373+
assert isinstance(format, bool)
374+
flags.append("-F")
375+
376+
if prevent_overwrite is not None and prevent_overwrite:
377+
assert isinstance(prevent_overwrite, bool)
378+
flags.append("-o")
379+
380+
if suppress_warnings is not None and suppress_warnings:
381+
assert isinstance(suppress_warnings, bool)
382+
flags.append("-q")
383+
384+
if append is not None and append:
385+
assert isinstance(append, bool)
386+
flags.append("-a")
387+
388+
if g is not None and g:
389+
assert isinstance(g, bool)
390+
flags.append("-g")
391+
352392
cmd = self.cmd(
353393
"set-window-option",
354394
f"-t{self.session_id}:{self.window_index}",
355395
option,
356396
value,
397+
*flags,
357398
)
358399

359400
if isinstance(cmd.stderr, list) and len(cmd.stderr):

0 commit comments

Comments
 (0)