Allow setting WM_CLASS and WM_NAME when creating new OS windows with the launch command

This commit is contained in:
Kovid Goyal 2020-03-15 08:12:28 +05:30
parent f353131b44
commit e8a9935cb2
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 18 additions and 3 deletions

View File

@ -57,6 +57,9 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- 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`)

View File

@ -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

View File

@ -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: