35 lines
879 B
Bash
35 lines
879 B
Bash
#!/usr/bin/bash
|
|
# This script will take a screenshot
|
|
# Dependencies: sway, grim, slurp
|
|
|
|
FILENAME="$HOME/screenshot-$(date +'%Y-%m-%d-%H%M%S.png')"
|
|
|
|
case $1 in
|
|
all) #Screenshot of all outputs
|
|
grim -t jpeg -q 100 $FILENAME ;;
|
|
|
|
focus) # Screenshot of focused window
|
|
geometry=$(
|
|
swaymsg -t get_tree |
|
|
awk '
|
|
BEGIN { ORS=" " };
|
|
lines_after&&lines_after-- {print $2};
|
|
/focused": true/,/window_rect/ {
|
|
if($1=="\"window_rect\":") lines_after=4;
|
|
if($1=="\"rect\":") lines_after=2
|
|
}' |
|
|
awk '{printf "%d,%d %dx%d", $1+$3,$2+$4,$5,$6}')
|
|
grim -t jpeg -q 100 -g "$geometry" $FILENAME ;;
|
|
|
|
choice) #Screenshot von Auswahl
|
|
grim -t jpeg -q 100 -g "$(slurp)" $FILENAME ;;
|
|
|
|
*) #Default: Screenshot of focused output
|
|
focused_output="$(
|
|
swaymsg -p -t get_outputs |
|
|
grep focused |
|
|
awk '{print $2}')"
|
|
grim -t jpeg -q 100 -o $focused_output $FILENAME ;;
|
|
esac
|
|
|
|
exit 0
|