El portapapeles o clipboard es una herramienta que nos ofrece el servidor X de nuestro sistema operativo con el fin de compartir información entre aplicaciones.
Es el responsable de operaciones tan recurrentes como el cortar, copiar y pegar. Consiste en una especie de almacén o buffer donde las aplicaciones pueden almacenar datos para que estos puedan ser utilizados posteriormente por la misma o por otras aplicaciones.
En general, todos sabemos utilizarlo desde un punto de vista de usuario, ya sea mediante los menús de las aplicaciones, o bien mediante los atajos de teclado, normalmente:
Sin embargo, ¿qué ocurre cuando lo queremos utilizar el portapapeles desde un script?
xclip
xclip es una aplicación que nos permite introducir texto en el portapapeles y recuperar texto de él desde la línea de comandos. El texto recuperado puede haber sido introducido por cualquier otra aplicación.
Asímismo, el texto que se introduce en el portapapeles a través de xclip puede ser utilizado por cualquier otra aplicación.
El paquete xclip puede encontrarse en los repositorios de la mayoria de distribuciones. Por ejemplo, en Ubuntu no es necesario más que un apt-get para instalarlo:
$ sudo apt-get install xclip
Su uso básico es muy sencillo. Para introducir el texto de la entrada estándar en el portapapeles debe especificarse la opción -i:
$ echo "Hola mundo" | xclip -i
El texto “Hola mundo” pasará a estar disponible para el resto de aplicaciones. Del mismo modo, para recuperar el texto del portapapeles y mandarlo a la salida estándar debe especificarse la opción -o:
$ xclip -o
Hola mundo
Selecciones
El portapapeles nos ofrece tres buffers o selecciones distintas:
xclip puede manipular los tres buffers. Sólo es necesario especificarle cuál queremos usar, mediante la opción -selection y la primera letra del nombre del buffer. Por omisión, se utiliza el buffer PRIMARY.
Por ejemplo, para obtener el texto que se ha cortado en otra aplicación, debemos especificar que queremos el contenido de salida del buffer CLIPBOARD, con las opciones -o y -selection c
$ xclip -o -selection c
Texto cortado en gedit
Una aplicación práctica
La herramienta xclip ofrece muchas posibilidades. Es principalmente útil en scripts, donde no tenemos la posibilidad de usar atajos de teclado, puesto que los procesos se realizan de forma autónoma.
Pongamos un ejemplo: imaginemos que queremos poder buscar cualquier palabra que aparezca en cualquier aplicación o página web en Wordreference para traducirla al inglés o del inglés con sólo una pulsación de teclado.
En primer lugar debemos averiguar el formato de URL con el que se le pasan parámetros al sitio web de destino. En este caso es el siguiente:
Una vez sabemos eso, simplemente debemos crear un script que abra esta URL con, por ejemplo, Firefox, sustituyendo PALABRA por el código equivalente que nos devuelva el texto que se encuentra en el portapapeles.
Le llamaremos, por ejemplo, wordreference.sh, y contendrá lo siguiente:
#!/bin/bash
firefox http://www.wordreference.com/es/translation.asp?tranword=$(xclip -o)
Para terminar, una vez le hemos guardado nuestro script y le hemos dado permisos de ejecución, tenemos que asociarlo a un atajo de teclado en nuestro gestor de escritorio. Por ejemplo, le asignamos la combinación Ctrl+G. Y ya lo tenemos listo.
Ahora sólo nos queda utilizarlo. Marcamos con el cursor cualquier palabra que queramos traducir y pulsamos Ctrl+G. Veremos como, sin más, se abre el explorador con la página correspondiente a la traducción de la palabra marcada.
Es un modo práctico de tener el traductor siempre a mano sin necesidad de instalar aplicaciones de diccionario.
Además, este mismo método puede utilizarse para invocar cualquier otra página web, como puede ser Google, Wikipedia u otro sitio que nos permita realizar búsquedas, o bien para abrir aplicaciones que requieran parámetros en su llamada.
¿Más aplicaciones? Lo que la imaginación os sugiera.
Continúar leyendo...
Es el responsable de operaciones tan recurrentes como el cortar, copiar y pegar. Consiste en una especie de almacén o buffer donde las aplicaciones pueden almacenar datos para que estos puedan ser utilizados posteriormente por la misma o por otras aplicaciones.
En general, todos sabemos utilizarlo desde un punto de vista de usuario, ya sea mediante los menús de las aplicaciones, o bien mediante los atajos de teclado, normalmente:
- Ctrl+X Cortar
- Ctrl+C Copiar
- Ctrl+V Pegar
Sin embargo, ¿qué ocurre cuando lo queremos utilizar el portapapeles desde un script?
xclip
xclip es una aplicación que nos permite introducir texto en el portapapeles y recuperar texto de él desde la línea de comandos. El texto recuperado puede haber sido introducido por cualquier otra aplicación.
Asímismo, el texto que se introduce en el portapapeles a través de xclip puede ser utilizado por cualquier otra aplicación.
El paquete xclip puede encontrarse en los repositorios de la mayoria de distribuciones. Por ejemplo, en Ubuntu no es necesario más que un apt-get para instalarlo:
$ sudo apt-get install xclip
Su uso básico es muy sencillo. Para introducir el texto de la entrada estándar en el portapapeles debe especificarse la opción -i:
$ echo "Hola mundo" | xclip -i
El texto “Hola mundo” pasará a estar disponible para el resto de aplicaciones. Del mismo modo, para recuperar el texto del portapapeles y mandarlo a la salida estándar debe especificarse la opción -o:
$ xclip -o
Hola mundo
Selecciones
El portapapeles nos ofrece tres buffers o selecciones distintas:
- PRIMARY: Es el buffer por defecto. En él se almacena texto simplemente con marcarlo con el cursor, sin necesidad de pulsar combinación de teclas ni opción en el menú ninguna.
- CLIPBOARD: Este buffer es el más utilizado por las aplicaciones. En él se almacena el texto seleccionado por el cursor sólo después de haber pulsado la combinación de teclas u opción de menú para cortar o copiar.
- SECONDARY: Es un buffer auxiliar e independiente. Está totalmente disponible pero las aplicaciones no suelen utilizarlo de forma estándar. Se usa sólo con fines muy particulares.
xclip puede manipular los tres buffers. Sólo es necesario especificarle cuál queremos usar, mediante la opción -selection y la primera letra del nombre del buffer. Por omisión, se utiliza el buffer PRIMARY.
Por ejemplo, para obtener el texto que se ha cortado en otra aplicación, debemos especificar que queremos el contenido de salida del buffer CLIPBOARD, con las opciones -o y -selection c
$ xclip -o -selection c
Texto cortado en gedit
Una aplicación práctica
La herramienta xclip ofrece muchas posibilidades. Es principalmente útil en scripts, donde no tenemos la posibilidad de usar atajos de teclado, puesto que los procesos se realizan de forma autónoma.
Pongamos un ejemplo: imaginemos que queremos poder buscar cualquier palabra que aparezca en cualquier aplicación o página web en Wordreference para traducirla al inglés o del inglés con sólo una pulsación de teclado.
En primer lugar debemos averiguar el formato de URL con el que se le pasan parámetros al sitio web de destino. En este caso es el siguiente:
Una vez sabemos eso, simplemente debemos crear un script que abra esta URL con, por ejemplo, Firefox, sustituyendo PALABRA por el código equivalente que nos devuelva el texto que se encuentra en el portapapeles.
Le llamaremos, por ejemplo, wordreference.sh, y contendrá lo siguiente:
#!/bin/bash
firefox http://www.wordreference.com/es/translation.asp?tranword=$(xclip -o)
Para terminar, una vez le hemos guardado nuestro script y le hemos dado permisos de ejecución, tenemos que asociarlo a un atajo de teclado en nuestro gestor de escritorio. Por ejemplo, le asignamos la combinación Ctrl+G. Y ya lo tenemos listo.
Ahora sólo nos queda utilizarlo. Marcamos con el cursor cualquier palabra que queramos traducir y pulsamos Ctrl+G. Veremos como, sin más, se abre el explorador con la página correspondiente a la traducción de la palabra marcada.
Es un modo práctico de tener el traductor siempre a mano sin necesidad de instalar aplicaciones de diccionario.
Además, este mismo método puede utilizarse para invocar cualquier otra página web, como puede ser Google, Wikipedia u otro sitio que nos permita realizar búsquedas, o bien para abrir aplicaciones que requieran parámetros en su llamada.
¿Más aplicaciones? Lo que la imaginación os sugiera.
Continúar leyendo...