Dans X11, vous devez communiquer avec le propriétaire de la sélection, poser des questions sur les formats pris en charge, puis demander des données dans le format spécifique. Je pense que la façon la plus simple de le faire est d'utiliser les boîtes à outils de fenêtrage existantes. Par exemple. avec Python et 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()
La sortie ressemblera à ceci :
$ ./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
Pour compléter la réponse de @rkhayrov, il existe déjà une commande pour cela :xclip
. Ou plus exactement, il y a un patch à xclip
qui a été ajouté à xclip
plus tard en 2010, mais n'a pas encore été publié qui fait cela. Donc, en supposant que votre système d'exploitation comme Debian est livré avec la tête de subversion de xclip
(modification 2019 :la version 0.13 avec ces modifications a finalement été publiée en 2016 (et intégrée à Debian en janvier 2019)) :
Pour lister les cibles de la sélection CLIPBOARD :
$ 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
Pour sélectionner une cible particulière :
$ 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
Et xclip
peut également définir et posséder une sélection (-i
au lieu de -o
).