レプリケーションイベントを正しく検出

レプリケーションイベントを正しく検出

というプログラムがあります。クリップ通知デフォルトでは、イベントがコピーされると終了するため、whileループで使用できます。だから私はこのループを持っています:

while True:
  # clipnotify exits on a copy event
  original = os.popen("xclip -o -sel clip").read()
  os.popen("clipnotify").read()
  content = os.popen("xclip -o -sel clip").read()
  print(content)
  # Ignore alt clipboard event
  if content != original:
    get_items()
    add_item(content)

問題は、Clipnotifyが通常のコピーイベント(Ctrl + Cなど)だけでなく、ひどい選択/強調コピーでも終了することです。私は通常のクリップボードからインポートしたいと思います。だから私がしたいのは、元の内容が変更されたことを確認してから作業を実行することです。何かを2回コピーしたくない限り、これはうまくいきます。このプログラムには、何かを2回コピーするのが妥当ですが、original変数トリックが変更を検出しないため、トリガーされないユースケースがあります。

いくつかのコードの問題がある場合は、変数を使用してこの問題を解決できます。

しかし、これをより簡単にするために他のシステムコンポーネントを使用できるかどうかを知りたいです。

以前私がしたことは、パッチ付きclipnotify.cを提供することでしたが、今はこのパッケージに依存しています。

関連情報