44
55import shlex
66import sys
7- from typing import Generator , List , NamedTuple , Optional , Tuple , Union
7+ from typing import Generator , List , Optional , Union
88
99from .cli_stub import CLIOptions
1010from .config_data import to_layout_names
11- from .constants import FloatEdges , kitty_exe
11+ from .constants import kitty_exe
1212from .layout .interface import all_layouts
1313from .options_stub import Options
14+ from .os_window_size import WindowSize , WindowSizeData , WindowSizes
1415from .typing import SpecialWindowInstance
1516from .utils import log_error , resolved_shell
1617
1718
18- class WindowSizeOpts (NamedTuple ):
19-
20- initial_window_width : Tuple [int , str ]
21- initial_window_height : Tuple [int , str ]
22- window_margin_width : FloatEdges
23- window_padding_width : FloatEdges
24- single_window_margin_width : FloatEdges
25- remember_window_size : bool
19+ def get_os_window_sizing_data (opts : Options , session : Optional ['Session' ] = None ) -> WindowSizeData :
20+ if session is None or session .os_window_size is None :
21+ sizes = WindowSizes (WindowSize (* opts .initial_window_width ), WindowSize (* opts .initial_window_width ))
22+ else :
23+ sizes = session .os_window_size
24+ return WindowSizeData (sizes , opts .remember_window_size , opts .single_window_margin_width , opts .window_margin_width , opts .window_padding_width )
2625
2726
2827class Tab :
@@ -43,7 +42,7 @@ def __init__(self, default_title: Optional[str] = None):
4342 self .tabs : List [Tab ] = []
4443 self .active_tab_idx = 0
4544 self .default_title = default_title
46- self .os_window_size : Optional [WindowSizeOpts ] = None
45+ self .os_window_size : Optional [WindowSizes ] = None
4746 self .os_window_class : Optional [str ] = None
4847
4948 def add_tab (self , opts : Options , name : str = '' ) -> None :
@@ -125,7 +124,7 @@ def finalize_session(ans: Session) -> Session:
125124 elif cmd == 'os_window_size' :
126125 from kitty .config_data import window_size
127126 w , h = map (window_size , rest .split (maxsplit = 1 ))
128- ans .os_window_size = WindowSizeOpts ( w , h , opts . window_margin_width , opts . window_padding_width , opts . single_window_margin_width , False )
127+ ans .os_window_size = WindowSizes ( WindowSize ( * w ), WindowSize ( * h ) )
129128 elif cmd == 'os_window_class' :
130129 ans .os_window_class = rest
131130 else :
0 commit comments