En ocasiones, utilizamos los programas de captura de pantalla que vienen con nuestros gestores de ventanas (gnome-screenshot, kscreenshot, etc), pero éstos, pueden ser demasiado pesados y en ocasiones tardar varios segundos en arrancar (sobre todo en hardware algo antiguo), ahí se nos presenta un problema, y es que a veces queremos hacer una captura rápida de pantalla y tardamos más de lo necesario.
Aquí presento un pequeño script que podemos vincular a algunas teclas de nuestro equipo para hacer una captura de pantalla sólo con una pulsación (y varias opciones).
El script requiere:
- scrot : para hacer las capturas de pantalla. Barajé la posibilidad de import de Imagemagick, pero éste último tiene problema con la composición de ventanas
- zenity : para los diálogos
- notify-send : para las notificaiones
- geeqie : para la previsualización (pero podemos utilizar cualquier programa, la condición aquí es que sea ligero
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/bin/bash SCREENSHOT_DIR="Capturas" PREVIEW_WITH=geeqie function wait_before_shot() { if [ -n "$1" ]; then if [ "$1" = "interactive" ]; then SECONDS=`zenity --scale --text "Seleccione los segundos antes de realizar la captura de pantalla" --value=3 --min-value 0 --max-value=10 --step=1` if [ "$?" -eq "0" ]; then sleep $SECONDS else zenity --info --text "Captura cancelada" fi else if [ "$1" != "0" ]; then sleep $1 else zenity --info --text "El tiempo debe ser <b>mayor</b> a 0" --no-wrap exit; fi fi fi } function do_screenshot() { scrot "$@"; if [ "$?" -ne "0" ]; then notify-send -i "$HOME/scripts/img/camera.png" "Error" "Fallo al capturar" else notify-send -i "$HOME/scripts/img/camera.png" "Muy bien" "Captura realizada con éxito" fi } if [ ! -d "$HOME/$SCREENSHOT_DIR" ]; then mkdir "$HOME/$SCREENSHOT_DIR" fi FILENAME="$HOME/$SCREENSHOT_DIR/Screenshot $(date +%d-%m-%Y-%H%m%S).png" case $1 in "screen"): wait_before_shot $2 do_screenshot "$FILENAME" ;; ("window"): wait_before_shot $2 do_screenshot -u "$FILENAME"; ;; ("interactive"): wait_before_shot $2 notify-send -t 1000 "Captura de pantalla" "Seleccione el área a capturar" do_screenshot -s "$FILENAME" ;; ("preview"): $PREVIEW_WITH "$HOME/$SCREENSHOT_DIR/$(ls -t "$HOME/$SCREENSHOT_DIR/" | head -n1)" ;; *) zenity --info --no-wrap --text "No se ha especificado el tipo de captura a realizar" ;; esac |
La imagen fue extraída de openclipart.
Se puede descargar el script completo aquí: screenshots.tar.bz2 (5.3Kb)
El script acepta varios modificadores en la entrada. El primer parámetro debe ser uno de estos tres:
- screen: Hará una captura a pantalla completa
- window: Capturá la ventana bajo el ratón
- interactive: Permite seleccionar el área a capturar
El segundo parámetro es el número de segundos que esperará antes de capturar, aunque si ponemos la palabra clave interactive, preguntará antes de capturar el número de segundos.
El nombre de fichero es generado automáticamente, primero es la palabra Screenshot luego la fecha y luego hora, minutos y segundos todo junto, con extensión png. El script está listo para ser incluído bajo una tecla de acción.
Pingback: Bitacoras.com /
Pingback: Script para realizar capturas de pantalla rápidas con las opciones que necesito – Poesía Binaria /