83 lines
1.9 KiB
Bash
Executable File
83 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
export GTK_THEME=Arc-Dark
|
|
FILEDIR=~/Screenshots
|
|
OPTION=()
|
|
|
|
mkdir -p $FILEDIR
|
|
values=$(zenity \
|
|
--title=wayland-screenshot \
|
|
--text="Option" \
|
|
--forms \
|
|
--add-combo="Mode" \
|
|
--combo-values="Specific area|Specific window|All screen" \
|
|
--add-combo="Include cursor[default: no]" \
|
|
--combo-values="no|yes" \
|
|
--add-entry="time to wait[default: 0s]" \
|
|
--add-combo="Copy to clipboard[default: no]" \
|
|
--combo-values="no|yes" \
|
|
)
|
|
|
|
result=$?
|
|
|
|
mode=$(echo $values | cut -d '|' -f 1)
|
|
cursor=$(echo $values | cut -d '|' -f 2)
|
|
wait=$(echo $values | cut -d '|' -f 3)
|
|
clipboard=$(echo $values | cut -d '|' -f 4)
|
|
|
|
if [ "$result" -eq 1 ];then # select cancel
|
|
echo "canceling"
|
|
exit
|
|
fi
|
|
|
|
if [ ! -z "$cursor" ] && [ "$cursor" == yes ];then
|
|
OPTION+="-c"
|
|
fi
|
|
|
|
if [ -z "$mode" ] ;then # select nothing
|
|
echo "mode is null"
|
|
zenity \
|
|
--title=wayland-screenshot \
|
|
--width=200 \
|
|
--warning \
|
|
--text="Specific area"
|
|
exit
|
|
fi
|
|
|
|
if [ ! -z "$wait" ];then
|
|
sleep $wait
|
|
fi
|
|
|
|
if [ "$mode" == "All screen" ];then # select All screen
|
|
true
|
|
elif [ "$mode" == "Specific window" ];then # select specify window
|
|
GEO="$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp)"
|
|
elif [ "$mode" == "Specific area" ];then # select specfy area
|
|
GEO="$(slurp)"
|
|
else # error
|
|
echo $mode
|
|
fi
|
|
|
|
if [ -z "$clipboard" ] || [ "$clipboard" == yes ];then
|
|
if [ -z "$GEO" ]; then
|
|
grim $OPTION - | wl-copy;
|
|
else
|
|
grim $OPTION -g "$GEO" - | wl-copy;
|
|
fi
|
|
else
|
|
if [ -z "$GEO" ]; then
|
|
name_screenshot="$FILEDIR/Screenshot_$(date +%F_%H.%M.%S).png"
|
|
grim $OPTION "$name_screenshot"
|
|
if [ -f /usr/bin/ristretto ] ; then
|
|
ristretto "$name_screenshot"
|
|
fi
|
|
else
|
|
name_screenshot="$FILEDIR/Screenshot_$(date +%F_%H.%M.%S).png"
|
|
grim $OPTION -g "$GEO" "$name_screenshot"
|
|
if [ -f /usr/bin/ristretto ] ; then
|
|
ristretto "$name_screenshot"
|
|
fi
|
|
fi
|
|
fi
|
|
|