90 lines
1.2 KiB
Bash
Executable File
90 lines
1.2 KiB
Bash
Executable File
#!/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 "$@"
|