hyprcrux/.config/hypr/scripts/screenshot.sh
2024-02-26 00:59:53 -05:00

48 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env sh
if [ -z "$XDG_PICTURES_DIR" ] ; then
XDG_PICTURES_DIR="$HOME/Pictures"
fi
ScrDir=`dirname "$(realpath "$0")"`
source $ScrDir/globalcontrol.sh
swpy_dir="${XDG_CONFIG_HOME:-$HOME/.config}/swappy"
save_dir="${2:-$XDG_PICTURES_DIR/Screenshots}"
save_file=$(date +'%y%m%d_%Hh%Mm%Ss_screenshot.png')
temp_screenshot="/tmp/screenshot.png"
mkdir -p $save_dir
mkdir -p $swpy_dir
echo -e "[Default]\nsave_dir=$save_dir\nsave_filename_format=$save_file" > $swpy_dir/config
function print_error
{
cat << "EOF"
./screenshot.sh <action>
...valid actions are...
p : print all screens
s : snip current screen
sf : snip current screen (frozen)
m : print focused monitor
EOF
}
case $1 in
p) # print all outputs
grimblast copysave screen $temp_screenshot && swappy -f $temp_screenshot ;;
s) # drag to manually snip an area / click on a window to print it
grimblast copysave area $temp_screenshot && swappy -f $temp_screenshot ;;
sf) # frozen screen, drag to manually snip an area / click on a window to print it
grimblast --freeze copysave area $temp_screenshot && swappy -f $temp_screenshot ;;
m) # print focused monitor
grimblast copysave output $temp_screenshot && swappy -f $temp_screenshot ;;
*) # invalid option
print_error ;;
esac
rm "$temp_screenshot"
if [ -f "$save_dir/$save_file" ] ; then
dunstify "t1" -a "saved in $save_dir" -i "$save_dir/$save_file" -r 91190 -t 2200
fi