web-dev-qa-db-ja.com

自動キー(autokey-qt)はキーコマンドをリッスンしませんが、マウスメニューからは正常に機能します

私はkubuntuを実行していて、何年もの間autokeyを正常に使用していますが、しばらく前にシステムアップデートで問題が発生しました。私はもともとそれを待って、修正がプッシュされるかどうかを確認しようとしました。

6か月経った今でも、キーコマンドキューを使用してテキストを自動挿入することはできません。ただし、システムトレイの自動キー記号をクリックして、挿入しようとしているフレーズを選択すると、正常に機能します。

シェルからautokey-qtを実行すると、次のようになります。

enter<class 'Xlib.protocol.request.QueryExtension'>
<class 'Xlib.protocol.request.QueryExtension'>
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/dist-packages/autokey/iomediator.py", line 204, 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 735, in check_input
    abbr = self._should_trigger_abbreviation(buffer)
  File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 134, in _should_trigger_abbreviation
    if self.__checkInput(buffer, abbr):
  File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 147, in __checkInput
    stringBefore, typedAbbr, stringAfter = self._partition_input(buffer, abbr)
  File "/usr/lib/python2.7/dist-packages/autokey/model.py", line 194, in _partition_input
    stringBefore, typedAbbr, stringAfter = currentString.rpartition(abbr)
ValueError: empty separator

自動キーでテキストベースのキューを再度認識するにはどうすればよいですか?

1
virtualxtc

この「空のセパレータ」エラーを修正するには、~/.config/autokey/dataサブフォルダに隠しファイルを掘り下げる必要がありました。

ヒント1:ファイル名は.

ヒント2:最も可能性の高い原因である最新のフレーズから始めます。

テキストファイル内には、次のようなセクションがあります。

    "abbreviations": [
        ",a", 
        ",alpha"
    ],

上記の,a,alphaは、対応するフレーズの挿入をトリガーするキーシーケンスに対応しています。

ただし、問題のある「フレーズ」ルールでは、次のように「省略形」セクションに余分な空白のエントリがあります。

"abbreviations": [
    ",a", 
    ",alpha",
    ""
], 

引用符で囲まれた空白の""とそれに続くカンマ,を削除します

ファイルを保存してAutokeyを再起動すると、機能するはずです。

0
virtualxtc