Poesía Binaria

Scripts para realizar capturas de pantalla rápidas

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:

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:

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.

También podría interesarte....