Xclip. Portapapers, clipboard
Introducció
El problema que es planteja és automatitzar la còpia del contingut de pàgines web a un fitxer. Amb Ctrl-A selecciono tot el contingut, i amb Ctrl-C copio el contingut al portapapers. Després a un fitxer puc fer Ctrl-V per enganxar el contingut. Hi ha possibilitats d'automatitzar el procés. La solució passa per xclip en combinació amb xdotool.
xclip
xclip is a command line interface to the X11 clipboard
- http://stackoverflow.com/questions/2270243/os-independent-clipboard-copy-paste-text-in-c
- http://www.hashbangcode.com/blog/using-xclip-copy-output-command-line-linux-659.html
$ sudo apt-get install xclip $ man xclip
To put the output of a command into the clipboard:
$ ls -la | xclip o bé $ uptime | xclip
aleshores, amb el botó del mig puc fer el paste (a la consola o en una aplicació gràfica)
18:59:31 up 10 min, 2 users, load average: 0.13, 0.31, 0.20
Si vull utilitzar Ctrl-V en comptes del botó del mig, utilitzaré:
$ uptime | xclip -selection c
Per posar tot el contingut d'un fitxer (e.g. /etc/apt/sources.list) al porta-papers:
$ xclip /etc/apt/sources.list
I per mostrar el contingut del porta-papers:
$ xclip -o
I per volcar el contingut del porta-papers a un fitxer:
$ xclip -o > ~/test.txt
Problema plantejat
El problema que es planteja és com copiar el contingut de moltes pàgines web a un fitxer, de la manera més ràpida possible. Una de les coses que ralentitza el proceś és haver de canviar de finestra entre el Firefox i gedit. Si ens podem evitar el procés de treballar amb el gedit millor, i si el procés d'enganxar acumulant (append) directament a un fitxer, utilitzant xclip, millor. Una altra cosa interessant és utiltizar dreceres del teclat per copiar el text d'una pàgina amb el teclat:
- Ctrl-A -> seleccionar tot
- Ctrl-C -> copiar
- Ctrl-W -> tancar
La primera idea és tenir un programet amb C que cada segon, posem per cas, posi el contingut del clipboard a un fitxer, i que es compari aquest fitxer amb el de l'anterior segon. Si els fitxers són diferents vol dir que el clipboard s'ha actualitzat, i per tant el nou clipboard el puc ficar (append) al fitxer on acumulant informació i que processaré a posteriori. Això no ha de ser difícil.
Una altra volta de torca és evitar que jo hagi de teclejar Ctrl-A, etc. És a dir, enviar les comandes Ctrl-A, etc, a la finestra i al tab correcte del procés Firefox? D'aquesta manera jo em limitaria a navegar per determinades pàgines, i el programet C estaria fent tota la feina de copiar/enganxar i acumular en un fitxer. Això seria la repera.
per copiar el codi font d'una pàgina amb el teclat:
- Ctrl-U -> veure codi font
- Ctrl-A -> seleccionar tot
- Ctrl-C -> copiar
- Ctrl-W -> tancar
hi ha alguna manera d'automatitzar això des de C o des d'un script?
Mirar xdotool - command-line X11 automation tool
creat per Joan Quintana Compte, febrer 2013