diff --git a/kitty/debug_config.py b/kitty/debug_config.py index 7eed7a080..d765ce096 100644 --- a/kitty/debug_config.py +++ b/kitty/debug_config.py @@ -113,7 +113,7 @@ def compare_opts(opts: KittyOpts, print: Print) -> None: seen = set() uniq = [] for d in reversed(defns): - key = d.full_key_sequence_to_trigger, d.options.when_focus_on + key = d.unique_identity_within_keymap if key not in seen: seen.add(key) uniq.append(d) diff --git a/kitty/options/utils.py b/kitty/options/utils.py index 200a21d9d..c070d32d9 100644 --- a/kitty/options/utils.py +++ b/kitty/options/utils.py @@ -1211,6 +1211,10 @@ class KeyDefinition(BaseDefinition): def full_key_sequence_to_trigger(self) -> Tuple[SingleKey, ...]: return (self.trigger,) + self.rest + @property + def unique_identity_within_keymap(self) -> Tuple[Tuple[SingleKey, ...], str]: + return self.full_key_sequence_to_trigger, self.options.when_focus_on + def __repr__(self) -> str: return self.pretty_repr('is_sequence', 'trigger', 'rest', 'options')