복제 이벤트를 올바르게 감지

복제 이벤트를 올바르게 감지

라는 프로그램이 있습니다.클립 알림기본적으로 이벤트가 복사되면 종료되므로 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)뿐만 아니라 끔찍한 선택/강조 복사에서도 종료된다는 것입니다. 나는 단지 일반 클립보드에서 가져오고 싶습니다. 그래서 제가 하고 싶은 것은 원본 내용이 변경되었는지 확인한 후 작업을 수행하는 것입니다. 무언가를 두 번 복사하고 싶지 않은 한 이것은 작동합니다. 이 프로그램에는 무언가를 두 번 복사하는 것이 타당하지만 original변수 트릭이 변경 사항을 감지하지 못하기 때문에 트리거되지 않는 사용 사례가 있습니다.

약간의 코드 문제가 있는 경우 변수를 사용하여 이 문제를 해결할 수 있습니다.

하지만 이 작업을 더 쉽게 하기 위해 다른 시스템 구성 요소를 사용할 수 있는지도 알고 싶습니다.

이전에 내가 한 일은 패치된clipnotify.c를 제공하는 것이었지만 지금은 이 패키지에 의존합니다.

관련 정보