diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py index d6e3aa5fc..218d31193 100644 --- a/qutebrowser/config/configtypes.py +++ b/qutebrowser/config/configtypes.py @@ -1655,4 +1655,4 @@ class Key(BaseType): #if utils.is_special_key(value): # value = '<{}>'.format(utils.normalize_keystr(value[1:-1])) #return value - return keyutils.parse_keystring(value) + return keyutils.KeySequence.parse(value) diff --git a/qutebrowser/keyinput/keyutils.py b/qutebrowser/keyinput/keyutils.py index 9c7bc1169..43808f8a5 100644 --- a/qutebrowser/keyinput/keyutils.py +++ b/qutebrowser/keyinput/keyutils.py @@ -205,12 +205,6 @@ def _parse_keystring(keystr): yield 'Shift+' + c if c.isupper() else c -def parse_keystring(keystr): - """Parse a keystring like or xyz and return a KeyInfo list.""" - s = ', '.join(_parse_keystring(keystr)) - return KeySequence(s) - - def normalize_keystr(keystr): """Normalize a keystring like Ctrl-Q to a keystring like Ctrl+Q. @@ -266,3 +260,9 @@ class KeySequence: def append_event(self, ev): return self.__class__(*self._sequence, ev.modifiers() | ev.key()) + + @classmethod + def parse(cls, keystr): + """Parse a keystring like or xyz and return a KeySequence.""" + s = ', '.join(_parse_keystring(keystr)) + return cls(s)