Solucionar problema con excepción en Autokey

Hace tiempo os hablé de una herramienta que mejora nuestra productividad a la hora de usar el teclado: Autokey. Aunque funciona muy bien a veces os puede dar un fallo que impida que se ejecute con normalidad.

Aquí os voy mostrar un error que me ocurrió hace poco y cómo lo solucioné.

De repente observé que no funciona ninguna abreviatura, así que me fijé en los mensajes que soltaba en la línea de comandos. En concreto, los errores eran éstos:

Exception in thread KeypressHandler-thread:
Traceback (most recent call last):
 File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
 self.run()
 File "/usr/lib/python2.7/site-packages/autokey/iomediator.py", line 204, in run
 target.handle_keypress(rawKey, modifiers, key, windowName, windowClass)
 File "/usr/lib/python2.7/site-packages/autokey/service.py", line 179, in handle_keypress
 currentInput, windowInfo, True)
 File "/usr/lib/python2.7/site-packages/autokey/service.py", line 304, in __checkTextMatches
 if item.check_input(buffer, windowInfo):
 File "/usr/lib/python2.7/site-packages/autokey/model.py", line 735, in check_input
 abbr = self._should_trigger_abbreviation(buffer)
 File "/usr/lib/python2.7/site-packages/autokey/model.py", line 134, in _should_trigger_abbreviation
 if self.__checkInput(buffer, abbr):
 File "/usr/lib/python2.7/site-packages/autokey/model.py", line 147, in __checkInput
 stringBefore, typedAbbr, stringAfter = self._partition_input(buffer, abbr)
 File "/usr/lib/python2.7/site-packages/autokey/model.py", line 194, in _partition_input
 stringBefore, typedAbbr, stringAfter = currentString.rpartition(abbr)
ValueError: empty separator

La causa está en que hemos introducido mal una abreviatura. A veces, al teclear la abreviatura puede que se inserte una coma “,”. En este caso, el programa da error y, aunque aparentemente está funcionando (aparece el icono con forma de “A” en la bandeja del sistema -en la barra de tareas-) no lo está haciendo.

Una vez eliminada la coma queda subsanado el error y todo vuelve a funcionar con normalidad.