summaryrefslogtreecommitdiff
path: root/.local/bin/screenshot
blob: 419e70f542ad7a5d6f7dd0516d38804a65b19115 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/sh

set -eu

[ -f "$XDG_CONFIG_HOME/user-dirs.dirs" ] &&
    . "$XDG_CONFIG_HOME/user-dirs.dirs"

OUTPUT_PATH="${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}/$(date +'%Y%m%d_%H%M%S').png"

SELECT=0
GEOM=

while [ "$#" -ne 0 ]; do case "$1" in
    -s | --select) SELECT=1; shift ;;
    *) exit 1 ;;
esac; done

if [ "$SELECT" -eq 1 ]; then
    GEOM=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -o)
    [ -z "$GEOM" ] && exit 1
fi

set -- grim
[ -n "$GEOM" ] && set -- "$@" -g "$GEOM"
set -- "$@" "$OUTPUT_PATH"

makoctl mode -a dnd >/dev/null
"$@"
makoctl mode -r dnd >/dev/null
wl-copy -t image/png <"$OUTPUT_PATH"

case "$(notify-send \
    -A upload="Upload to image host" \
    "screenshot" "Screenshot taken and saved to <b>${OUTPUT_PATH##*/}</b>.")" in
*) ;;
esac