diff --git a/kitty/boss.py b/kitty/boss.py index 4fb1ee045..d0015f509 100644 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -135,7 +135,6 @@ class Boss: def __init__( self, - os_window_id: Optional[int], opts: Options, args: CLIOptions, cached_values: Dict[str, Any], @@ -165,22 +164,24 @@ class Boss: ) set_boss(self) self.opts, self.args = opts, args - startup_sessions = create_sessions(opts, args, default_session=opts.startup_session) self.keymap = self.opts.keymap.copy() if new_os_window_trigger is not None: self.keymap.pop(new_os_window_trigger, None) - for startup_session in startup_sessions: - self.add_os_window(startup_session, os_window_id=os_window_id) - os_window_id = None - if args.start_as != 'normal': - if args.start_as == 'fullscreen': - self.toggle_fullscreen() - else: - change_os_window_state(args.start_as) if is_macos: from .fast_data_types import cocoa_set_notification_activated_callback cocoa_set_notification_activated_callback(notification_activated) + def startup_first_child(self, os_window_id: Optional[int]) -> None: + startup_sessions = create_sessions(self.opts, self.args, default_session=self.opts.startup_session) + for startup_session in startup_sessions: + self.add_os_window(startup_session, os_window_id=os_window_id) + os_window_id = None + if self.args.start_as != 'normal': + if self.args.start_as == 'fullscreen': + self.toggle_fullscreen() + else: + change_os_window_state(self.args.start_as) + def add_os_window( self, startup_session: Optional[Session] = None, @@ -427,10 +428,12 @@ class Boss: def toggle_maximized(self) -> None: toggle_maximized() - def start(self) -> None: + def start(self, first_os_window_id: int) -> None: if not getattr(self, 'io_thread_started', False): self.child_monitor.start() self.io_thread_started = True + self.startup_first_child(first_os_window_id) + if self.opts.update_check_interval > 0 and not hasattr(self, 'update_check_started'): from .update_check import run_update_check run_update_check(self.opts.update_check_interval * 60 * 60) diff --git a/kitty/main.py b/kitty/main.py index 4e979dd14..bc7bf8cee 100644 --- a/kitty/main.py +++ b/kitty/main.py @@ -133,8 +133,8 @@ def _run_app(opts: OptionsStub, args: CLIOptions, bad_lines: Sequence[BadLine] = pre_show_callback, appname, args.name or args.cls or appname, args.cls or appname, load_all_shaders) - boss = Boss(window_id, opts, args, cached_values, new_os_window_trigger) - boss.start() + boss = Boss(opts, args, cached_values, new_os_window_trigger) + boss.start(window_id) if bad_lines: boss.show_bad_config_lines(bad_lines) try: