@@ -326,7 +326,18 @@ def select_layout(self, layout: t.Optional[str] = None) -> "Window":
326
326
327
327
return self
328
328
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" :
330
341
"""Set option for tmux window.
331
342
332
343
Wraps ``$ tmux set-window-option <option> <value>``.
@@ -344,16 +355,46 @@ def set_window_option(self, option: str, value: t.Union[int, str]) -> "Window":
344
355
:exc:`exc.OptionError`, :exc:`exc.UnknownOption`,
345
356
:exc:`exc.InvalidOption`, :exc:`exc.AmbiguousOption`
346
357
"""
358
+ flags : list [str ] = []
347
359
if isinstance (value , bool ) and value :
348
360
value = "on"
349
361
elif isinstance (value , bool ) and not value :
350
362
value = "off"
351
363
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
+
352
392
cmd = self .cmd (
353
393
"set-window-option" ,
354
394
f"-t{ self .session_id } :{ self .window_index } " ,
355
395
option ,
356
396
value ,
397
+ * flags ,
357
398
)
358
399
359
400
if isinstance (cmd .stderr , list ) and len (cmd .stderr ):
0 commit comments