Ich muss die X11-Zwischenablage überwachen.
Momentan fordere ich die ClipBoard-Auswahl alle 5 Sekunden an, dann hasse ich den aus der Zwischenablage zurückgegebenen Text und vergleiche ihn mit der Hash-Berechnung aus der letzten Überprüfung. Wenn Hash nicht identisch sind, analysiere ich den Textinhalt und mache ein paar Sachen ...
Ich mag meine Methode nicht. Ich bin von Windows, und mit dem Winapi ist es der Kernel, der Ihr Programm benachrichtigt, wenn die Zwischenablage geändert wurde, und es ist effizienter!
Ich möchte nur wissen, ob es möglich ist, dass X11 Ihr Programm als winapi benachrichtigen kann, wenn sich die Zwischenablage geändert hat? Was ist der effizientere Weg, Änderungen an der Zwischenablage mit X11 zu überprüfen?
GetSelectionOwner
(PRIMARY und CLIPBOARD) SelectionClear
event SelectionClear
event, gehe zu Schritt 2 Verwenden Sie XFixesSelectSelectionInput()
von der Erweiterung Xfixes und warten Sie auf XFixesSelectionNotify
event.
Beispiel:
%Vor% Dies funktioniert sowohl für bufname == "CLIPBOARD"
als auch für bufname == "PRIMARY"
selection.
Siehe auch PrintSelection()
function in dieser Antwort .