Autokey (autokey-qt) зависает и не будет вставлять текст
По некоторым предложениям здесь и Lifehacker, я начал использовать autokey.
Он работал отлично в течение недели, но на сегодняшний день это сейчас
зависает, когда я пытаюсь ввести название новой фразы.
обычно не закрывается, когда я нажимаю "х" в моем окне менеджера
а также
- больше не отвечает на мои аббревиатуры.
Я добавил несколько фраз и перезагрузился со времени моей последней успешной попытки его использования.
Другой пользователь сообщил о подобной проблеме для gtk-версии autokey.
Результаты его запуска из командной строки, кажется, показывают некоторые ошибки исключения:
Exception in thread KeypressHandler-thread:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 808, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/dist-packages/autokey/iomediator.py", line 202, in run
target.handle_keypress(rawKey, modifiers, key, windowName, windowClass)
File "/usr/lib/python2.7/dist-packages/autokey/service.py", line 179, in handle_keypress
currentInput, windowInfo, True)
File "/usr/lib/python2.7/dist-packages/autokey/service.py", line 304, in __checkTextMatches
if item.check_input(buffer, windowInfo):
File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 732, in check_input
abbr = self._should_trigger_abbreviation(buffer)
File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 131, in _should_trigger_abbreviation
if self.__checkInput(buffer, abbr):
File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 144, in __checkInput
stringBefore, typedAbbr, stringAfter = self._partition_input(buffer, abbr)
File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 191, in _partition_input
stringBefore, typedAbbr, stringAfter = currentString.rpartition(abbr)
ValueError: empty separator
Любая помощь будет оценена.
2 ответа
Еще поиграв с автоключем, я заметил, что к одному из моих "Сокращений" добавлена запятая, заключенная в квадратные скобки: [<myabbreviation>,]
При дальнейшей проверке в этом правиле "Фраза" было включено второе дополнительное пустое "сокращение", которое при удалении приводило к исчезновению скобок.
Поскольку удаление этой лишней пустой аббревиатуры теперь Autokey, кажется, работает отлично.
Это мое изменение в коде обидчика:
/usr/lib/python2.7/dist-packages/autokey/model.py
def _should_trigger_abbreviation(self, buffer):
"""
Checks whether, based on the settings for the abbreviation and the given input,
the abbreviation should trigger.
@param buffer Input buffer to be checked (as string)
"""
for abbr in self.abbreviations:
if abbr == "":
continue
if self.__checkInput(buffer, abbr):
return True