Cómo hacer capturas de pantalla en Linux
Una de las cosas que hacemos los linuxeros es compartir fotos de nuestros escritorios en redes sociales. Algunas personalizaciones son verdaderas obras de arte y, aunque no hay una competencia declarada, es indudable que existe. Ya sea que quieras sumarte o porque te interese realizar tutoriales o necesitas ayuda de los foros, saber cómo realizar capturas de pantalla en Linux es una habilidad que deberías aprender.
También hay otros usos. Para muchos discapacitados visuales las opciones de accesibilidad de los lectores de libros electrónicos no son suficientes, y dado que por estar protegidos por DRM no se pueden hacer modificaciones de formato, la alternativa es realizar capturas de las páginas y pasarlas por un programa de reconocimiento óptico de caracteres. También veremos como automatizar ese proceso.
Cómo hacer capturas de pantalla
Para que se entienda de qué va este post, comienzo definiendo la captura de pantalla como una fotografía o un vídeo que muestra lo que se ve en el monitor. La captura puede ser de toda la pantalla, de parte de ella o de una ventana.
De las capturas de pantalla en vídeo hablé en un artículo anterior, por lo que voy a concentrarme de las herramientas para la captura en imágenes.
La forma más fácil de hacer una captura de pantalla es pulsar la tecla ImprPant en el teclado. En la mayoría de las distribuciones Linux esto debería abrir la aplicación correspondiente en la cual podrás seleccionar diferentes opciones.
Cada aplicación tiene sus propias capturas de pantalla para acelerar el proceso.
Herramientas para hacer capturas de pantalla
Spectacle
Es la herramienta que viene incluida en el escritorio KDE y es la que se abre cuando pulsas la tecla ImprPant. Disponemos de las siguientes opciones de captura:
- Pantalla completa.
- Región rectangular.
- Ventana activa.
- Ventana bajo el cursor.
La diferencia entre las dos últimas opciones es que la ventana activa es la que está en primer plano, mientras que con la última opción puedes seleccionar cualquier otra ventana abierta con el puntero del ratón.
Spectacle nos permite establecer una demora desde el momento que pulsamos la tecla ImprPant o el botón Hacer nueva captura o realizarla inmediatamente.
En la captura puede incluirse:
- Incluir el puntero
- Incluir la barra de título y el borde de la ventana.
- Capturar una ventana emergente.
Las capturas de pantalla pueden guardarse en los formatos de archivos gráficos más comunes, copiarse en el portapapeles o exportarse a los programas de edición o visualización de gráficos que tengamos instalados en el equipo.
La herramienta de anotación nos provee de un pequeño editor gráfico que nos permite marcar zonas de la pantalla, agregar textos y emoticones, desenfocar parte de la captura, resaltar, agregar flechas y dibujar.
En el apartado herramientas, además de la opción de imprimir la captura nos ofrece la posibilidad de grabar la pantalla en video, pero lo que hace es derivar la tarea a otra aplicación (En el caso de que esté instalada) u ofrecernos la instalación.
Herramienta de captura de pantalla de GNOME
Hasta el presente, la herramienta de captura de pantalla de GNOME no era muy diferente de la de KDE salvo que carecía de las opciones de anotación y exportación a otros programas. A partir de la versión 42 (Que veremos en las distribuciones liberadas a partir de abril) hay una nueva herramienta que aprovecha las nuevas posibilidades gráficas del escritorio y fusiona en una las actuales aplicaciones de captura de pantalla en imagen y video.
Más allá de la interfaz espectacular no tiene demasiadas prestaciones. Permite grabar toda o parte de una pantalla o una ventana en video o capturarla en imagen, pero no hay opción de modificar las opciones de guardado.
Flameshot
Si vas a hacerle muchas modificaciones a la captura de pantalla y no quieres andar cambiando entre aplicaciones, sin dudas, deberías probar Flameshot. Está disponible en los repositorios de algunas de las distribuciones Linux principales, así como en formato Flatpak y Snap.
Cuando instalamos el programa vemos un pequeño aviso que nos informa de la aparición de un icono en la barra superior. Podemos lanzar el programa pulsando sobre él.
Cuando lo hacemos, vemos una lista de atajos de teclado sobre la ventana activa oscurecida. Cuando seleccionamos una región con el cursor esta aparece con los colores normales y se muestran una serie de herramientas en el borde. Con ellas podemos:
- Poner por encima de todas las ventanas la imagen capturada.
- Subir la imagen a Imgur.
- Abrir con otra aplicación la captura.
- Guardar la captura en los principales formatos gráficos.
- Copiar al portapapeles.
- Deshacer o rehacer la última modificación.
- Desplazar la ventana de selección.
- Mostrar las coordenadas cartesianas de la ventana de selección
- Invertir los colores.
- Pixelar zonas de la captura.
- Numerar diferentes zonas de la captura.
- Agregar texto a la captura.
- Resaltar zonas.
- Dibujar un círculo vació
- Dibujar un rectángulo lleno
- Dibujar el borde de un rectángulo.
- Incorporar flechas.
- Trazar líneas.
- Dibujar a mano alzada.
No podemos asignar nombres arbitrarios, pero sí que parámetros y en qué orden formarán parte del título con el que se van a guardar las capturas.
Flameshot también está disponible para Windows y Mac desde su página web.
Scrot
Scrot es una herramienta pensada para hacer capturas de pantalla desde la terminal. Su mayor utilidad como veremos un poco más adelante es que permite automatizar el proceso de captura de pantalla.
Se instala de la siguiente manera:
Debian, Ubuntu y derivados
sudo apt install scrot
Fedora
sudo dnf install scrot
Hacer captura de pantalla completa
scrot
Esto guardará la pantalla completa en la carpeta personal y el nombre conformado por la fecha y el tamaño.
Elegir destino y nombre de la imagen
scrot ~/Imágenes/captura_scrot.png
Seleccionar ventana o región
Si probaste los comandos anteriores, te habrás dado cuenta del problema. La terminal aparece siempre en la captura. Esto se soluciona con el siguiente comando.
scrot -s
Solo tienes que posar el cursor sobre la ventana y pulsad el botón izquierdo o marcar una zona con el puntero y soltar el botón.
Por supuesto que los comandos se pueden combinar
scrot ~/Imágenes/captura_scrot3.png -s
Podemos evitarnos escribir todo esto yendo directamente al directorio donde queremos guardar la imagen. lo hacemos con
cd Imágenes
Establecer un tiempo de retardo
Otra forma de asegurarnos de capturar lo que queremos capturar es establecer un lapso en segundos antes de que se produzca la captura. El comando es el siguiente:
scrot -s -d 10
En este caso establecemos una demora de 10 segundos antes de la captura.
Determinando la calidad
Cuanto mayor sea la calidad de la imagen, más será su peso y el tiempo que tarde en cargarse si la vas a usar en un sitio web. Podemos ajustar este parámetro estableciendo un porcentaje.
scrot -q 70
Establece la captura con una calidad del 70%
Fijando el tamaño
Los editores de Linux Adictos establecen que las imágenes deben tener un ancho máximo de 1200 píxeles. Esto, con las habituales herramientas de captura de pantalla, significa que hay que pasarlas por El Gimp o algún otro servicio web para ajustarlas al tamaño. Por suerte scrot me va a ahorrar el trabajo. Veamos:
Según me indica el nombre de la captura, mi pantalla tiene un ancho de 1366 píxeles, yo necesito 1200. Aplicando una simple operación matemática calculamos el parámetro del porcentaje del tamaño
1200*100/1366=87,8477..
Probemos
scrot -s -d 10 -t 87.85
La idea es buena, pero hay demasiados decimales para que pueda obtener el resultado deseado
Haciendo capturas múltiples con simulación de pulsación del ratón
Vamos a poner un ejemplo puramente hipotético. Una librería online con nombre de zona geográfica no te deja ver los libros que compraste fuera de sus dispositivos o el navegador. Una solución es automatizar el proceso de captura y de cambio de página y luego pasar esas imágenes por una herramienta de reconocimiento óptico de caracteres.
Además de Scrot vamos a necesitar otra herramienta de los repositorios llamada Xdotools. Con ella vamos a simular la presión del botón del ratón para el paso de la página.
Una vez instalado el programa debemos hacer lo siguiente.
- Abre la web del servicio de lectura en la nube.
- Abre la terminal y redúcela de tamaño.
- Coloca la terminal a la izquierda de la ventana del lector.
- En la terminal escribe
xdotool getmouselocation
y no pulses enter. - Lleva el puntero al botón de cambio de página del lector cloud y pulsa enter.
- Toma nota de los valores de X e Y que verás en la terminal.
- Copia el siguiente script en el editor de textos:
#!/bin/bash
while [ 1 ]; do
xdotool mousemove XXXX YYY click 1 &
scrot -q 100 '%Y-%m-%d-%H:%M:%S.png' -e 'mv $f ~/Imágenes/'
sleep 20
done
Recuerda reemplazar las x e y por los valores que anotaste previamente.
El programa hará una captura de la página y cambiará a la siguiente después de 20 segundos.
Guarda el archivo con el nombre script.sh. Luego ve al lugar donde lo guardaste, posa el ratón sobre el archivo y con el botón derecho dale permisos de ejecución desde la ventana Propiedades.
Para lanzar el programa escribe ./script.sh, maximiza la ventana del lector y estate atento a cuando llega al final del libro porque si no cierras la terminal seguirá haciendo capturas.
Dos aclaraciones finales
El procedimiento que acabo de describir fue desarrollado, como dije al principio del artículo, por personas con discapacidad visual para ser usado por personas con discapacidad visual que necesitan algo más que las opciones de accesibilidad disponibles para disfrutar de los libros que compraron. De ninguna manera estoy fomentando la distribución no autorizada de contenidos.
Scrot es una herramienta muy completa, para entender todas sus posibilidades usa el comando
man scrot