This commit is contained in:
Kovid Goyal
2025-09-22 13:18:09 +05:30
parent 1ba7e8b13b
commit 41f6b443e6

View File

@@ -5,6 +5,7 @@ import os
import sys import sys
from contextlib import suppress from contextlib import suppress
from functools import partial from functools import partial
from types import MappingProxyType
from typing import Any, Iterable, Mapping, Sequence from typing import Any, Iterable, Mapping, Sequence
from kitty.cli import parse_args from kitty.cli import parse_args
@@ -96,8 +97,8 @@ def layer_shell_config(opts: PanelCLIOptions) -> LayerShellConfig:
@run_once @run_once
def cli_option_to_lsc_configs_map() -> dict[str, tuple[str, ...]]: def cli_option_to_lsc_configs_map() -> MappingProxyType[str, tuple[str, ...]]:
return { return MappingProxyType({
'lines': ('y_size_in_cells', 'y_size_in_pixels'), 'lines': ('y_size_in_cells', 'y_size_in_pixels'),
'columns': ('x_size_in_cells', 'x_size_in_pixels'), 'columns': ('x_size_in_cells', 'x_size_in_pixels'),
'margin_top': ('requested_top_margin',), 'margin_top': ('requested_top_margin',),
@@ -111,7 +112,7 @@ def cli_option_to_lsc_configs_map() -> dict[str, tuple[str, ...]]:
'exclusive_zone': ('requested_exclusive_zone',), 'exclusive_zone': ('requested_exclusive_zone',),
'override_exclusive_zone': ('override_exclusive_zone',), 'override_exclusive_zone': ('override_exclusive_zone',),
'hide_on_focus_loss': ('hide_on_focus_loss',) 'hide_on_focus_loss': ('hide_on_focus_loss',)
} })
def incrementally_update_layer_shell_config(existing: dict[str, Any], cli_options: Iterable[str]) -> LayerShellConfig: def incrementally_update_layer_shell_config(existing: dict[str, Any], cli_options: Iterable[str]) -> LayerShellConfig:
@@ -127,7 +128,7 @@ def incrementally_update_layer_shell_config(existing: dict[str, Any], cli_option
raise ValueError(f'Invalid panel options specified: {e}') raise ValueError(f'Invalid panel options specified: {e}')
lsc_cli_map = cli_option_to_lsc_configs_map() lsc_cli_map = cli_option_to_lsc_configs_map()
for option in seen_options: for option in seen_options:
for config in lsc_cli_map[option]: for config in lsc_cli_map.get(option, ()):
existing[config] = getattr(lsc, config) existing[config] = getattr(lsc, config)
if seen_options.get('edge') == 'background': if seen_options.get('edge') == 'background':
existing['type'] = GLFW_LAYER_SHELL_BACKGROUND existing['type'] = GLFW_LAYER_SHELL_BACKGROUND