#!/bin/sh # # Script to take screenshots or gifs # scrot_dir=$HOME/screenshots gif_dir=$scrot_dir/gifs date_format='%Y-%m-%d_%H-%M-%S' [ -d $scrot_dir ] || mkdir $scrot_dir [ -d $gif_dir ] || mkdir $gif_dir main() { prompt_main } # prompt with rofi prompt_main() { options=" 1) Fullscreen\n\ 2) Selection\n\ 3) Record screen " #echo -e $options # -i case insensitive # -l vertical lines option=$(echo -e $options | rofi -dmenu) #echo "\"$option\"" case $option in 1*) sleep 0.5 f_scrot ;; 2*) s_scrot ;; 3*) prompt_gif ;; esac } prompt_gif() { options=" 10s\n\ 30s\n\ 60s " option=$(echo -e $options | rofi -dmenu) case $option in 10s) byzanz_gif 10 ;; 30s) byzanz_gif 30 ;; 60s) byzanz_gif 60 ;; esac } # screenshots using scrot s_scrot() { name=$(date +${date_format}_sel.png) path="${scrot_dir}/${name}" scrot -a $(slop -f "%x,%y,%w,%h") $path && xclip -sel clip $path -t image/png } f_scrot() { name=$(date +${date_format}_full.png) path="${scrot_dir}/${name}" scrot $path && xclip -sel clip $path -t image/png } # screen recorder byzanz_gif() { name=$(date +${date_format}.gif) path="${gif_dir}/${name}" byzanz-record -c -d $1 --delay=0 $path } main "$@"