Skip to content

Commit 26057f6

Browse files
committed
feat!(Window): Set option flags
1 parent 1784d30 commit 26057f6

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
@@ -327,7 +327,18 @@ def select_layout(self, layout: t.Optional[str] = None) -> "Window":
327327

328328
return self
329329

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

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

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

0 commit comments

Comments
 (0)