diff --git a/docs/changelog.rst b/docs/changelog.rst index a201a5fd1..21cc9df82 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -57,6 +57,9 @@ To update |kitty|, :doc:`follow the instructions `. - Fix incorrect rendering of selection when using rectangular select and scrolling (:iss:`2351`) +- Allow setting WM_CLASS and WM_NAME when creating new OS windows with the + launch command (:option:`launch --os-window-class`) + - macOS: When switching input method while a pending multi-key input is in progress, clear the pending input (:iss:`2358`) diff --git a/kitty/boss.py b/kitty/boss.py index 200f042de..7cde99e67 100644 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -198,12 +198,12 @@ class Boss: ) -> int: if os_window_id is None: opts_for_size = opts_for_size or getattr(startup_session, 'os_window_size', None) or self.opts - cls = wclass or self.args.cls or appname + wclass = wclass or self.args.cls or appname with startup_notification_handler(do_notify=startup_id is not None, startup_id=startup_id) as pre_show_callback: os_window_id = create_os_window( initial_window_size_func(opts_for_size, self.cached_values), pre_show_callback, - appname, wname or self.args.name or cls, cls) + appname, wname or self.args.name or wclass, wclass) tm = TabManager(os_window_id, self.opts, self.args, startup_session) self.os_window_map[os_window_id] = tm return os_window_id diff --git a/kitty/launch.py b/kitty/launch.py index bc3097083..54e0bcfe6 100644 --- a/kitty/launch.py +++ b/kitty/launch.py @@ -136,6 +136,18 @@ screen. --marker Create a marker that highlights text in the newly created window. The syntax is the same as for the :code:`toggle_marker` map action (see :doc:`/marks`). + + +--os-window-class +Set the WM_CLASS property on X11 and the application id property on Wayland for +the newly created OS Window when using :option:`launch --type`=os-window. +Defaults to whatever is used by the parent kitty process, which in turn +defaults to :code:`kitty`. + + +--os-window-name +Set the WM_NAME property on X11 for the newly created OS Window when using +:option:`launch --type`=os-window. Defaults to :option:`launch --os-window-class`. ''' @@ -169,7 +181,7 @@ def tab_for_window(boss: Boss, opts: LaunchCLIOptions, target_tab: Optional[Tab] else: tab = None elif opts.type == 'os-window': - oswid = boss.add_os_window() + oswid = boss.add_os_window(wclass=opts.os_window_class, wname=opts.os_window_name) tm = boss.os_window_map[oswid] tab = tm.new_tab(empty_tab=True) if opts.tab_title: