Unter Verwendung der Frameworks unter OS X kann ich folgendes verwenden, um ein PNG in die Pasteboard zu kopieren (in C - natürlich könnte ich NSPasteboard mit Cocoa verwenden):
%Vor%Ich bin daran interessiert, diese Funktionalität auf Linux / * BSD Plattformen zu portieren. Wie kann ich das mit X replizieren?
Lesen Sie X-Auswahl, Cut-Puffer und Tötungsringe vor allem anderen. X11 hat ein ziemlich einzigartiges System, das anscheinend niemand kopiert hat.
Eine Kuriosität, die sich von den meisten anderen Systemen unterscheidet: Wenn das Programm, das die Auswahl (Zwischenablage) besitzt, wegfällt, ändert sich auch die Auswahl. Wenn Ihr Programm also sagt "Ich habe eine Auswahl (die zufällig ein Bild ist)" und wird dann beendet, kann niemand eine Kopie dieses Bildes von Ihnen anfordern. Um nützlich zu sein, muss der Zwischenablage-Besitzer mindestens so lange herumstehen, bis ein anderes Programm die Auswahl trifft.
Immer noch hier? Hier ist ein kurzes Programm, das mit PyGTK funktioniert (weil C ein Schmerz ist).
%Vor%Was passiert unter der Haube:
Wenn ein Zwischenablage-Manager ausgeführt wird, wird dieses Programm möglicherweise sofort beendet. Andernfalls wird gewartet, bis "Ausschneiden / Kopieren" in einem anderen Programm ausgeführt wird.
Die Möglichkeit, Daten in der GTK-Zwischenablage zu speichern, nachdem ein Programm beendet wurde, wird nicht gut unterstützt. In GTK.clipboard.store können möglicherweise größere Bilder (größer als einige hundert KB) nicht gespeichert werden, und erweiterte Desktopfunktionen wie compiz können mit diesem Mechanismus in Konflikt geraten. Eine Lösung ohne diese Nachteile besteht darin, eine einfache gtk-Anwendung im Hintergrund auszuführen. Die folgende Python-Serveranwendung verwendet das Pyro-Paket, um die Methoden von ImageToClipboard verfügbar zu machen:
%Vor%Starten Sie dieses Programm als Hintergrundprozess, d. h.
gipclip-imaged.py & amp;
Im folgenden Beispiel einer Client-Anwendung wird das Clipboard-Bild unter Verwendung eines in der Befehlszeile angegebenen Dateinamens festgelegt:
%Vor%Um ein Bild in die Zwischenablage zu kopieren, führen Sie
ausgclipboard-setimage.py picname.png
Tags und Links c linux copy-paste x11 pasteboard