In X11 müssen Sie mit dem Eigentümer der Auswahl kommunizieren, sich nach unterstützten Formaten erkundigen und dann Daten im spezifischen Format anfordern. Ich denke, der einfachste Weg, dies zu tun, besteht darin, vorhandene Windowing-Toolkits zu verwenden. Z.B. mit Python und GTK:
#!/usr/bin/python
import glib, gtk
def test_clipboard():
clipboard = gtk.Clipboard()
targets = clipboard.wait_for_targets()
print "Targets available:", ", ".join(map(str, targets))
for target in targets:
print "Trying '%s'..." % str(target)
contents = clipboard.wait_for_contents(target)
if contents:
print contents.data
def main():
mainloop = glib.MainLoop()
def cb():
test_clipboard()
mainloop.quit()
glib.idle_add(cb)
mainloop.run()
if __name__ == "__main__":
main()
Die Ausgabe sieht folgendermaßen aus:
$ ./clipboard.py
Targets available: TIMESTAMP, TARGETS, MULTIPLE, text/html, text/_moz_htmlcontext, text/_moz_htmlinfo, UTF8_STRING, COMPOUND_TEXT, TEXT, STRING, text/x-moz-url-priv
...
Trying 'text/html'...
I asked <a href="http://superuser.com/questions/144185/getting-html-source-or-rich-text-from-the-x-clipboard">the same question on superuser.com</a>, because I was hoping there was a utility to do this, but I didn't get any informative responses.
Trying 'text/_moz_htmlcontext'...
<html><body class="question-page"><div class="container"><div id="content"><div id="mainbar"><div id="question"><table><tbody><tr><td class="postcell"><div><div class="post-text"><p></p></div></div></td></tr></tbody></table></div></div></div></div></body></html>
...
Trying 'STRING'...
I asked the same question on superuser.com, because I was hoping there was a utility to do this, but I didn't get any informative responses.
Trying 'text/x-moz-url-priv'...
http://stackoverflow.com/questions/3261379/getting-html-source-or-rich-text-from-the-x-clipboard
Um die Antwort von @rkhayrov zu ergänzen, gibt es dafür bereits einen Befehl:xclip
. Genauer gesagt, es gibt einen Patch für xclip
die zu xclip
hinzugefügt wurde später im Jahr 2010, wurde aber noch nicht veröffentlicht, was das tut. Angenommen, Ihr Betriebssystem wie Debian wird mit dem Subversion-Kopf von xclip
ausgeliefert (Änderung 2019 :Version 0.13 mit diesen Änderungen wurde schließlich 2016 veröffentlicht (und im Januar 2019 in Debian gezogen)):
So listen Sie die Ziele für die CLIPBOARD-Auswahl auf:
$ xclip -selection clipboard -o -t TARGETS
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/x-moz-url-priv
So wählen Sie ein bestimmtes Ziel aus:
$ xclip -selection clipboard -o -t text/html
<a href="https://stackoverflow.com/users/200540/rkhayrov" title="3017 reputation" class="comment-user">rkhayrov</a>
$ xclip -selection clipboard -o -t UTF8_STRING
rkhayrov
$ xclip -selection clipboard -o -t TIMESTAMP
684176350
Und xclip
kann auch eine Auswahl setzen und besitzen (-i
statt -o
).