You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.4 KiB
86 lines
2.4 KiB
#!/bin/bash |
|
|
|
# A simple wrapper around maim |
|
# |
|
# When run, the screenshot will be added to the clipboard |
|
# The file path will be put in the primary selection |
|
# Will create notification containing file path |
|
# |
|
# If you have a project specified, it will put the sceenshot in that folder instead of /tmp |
|
# |
|
# Relies on maim for taking screenshot |
|
# If you give it the -o flag for ocr, it needs tesseract |
|
|
|
|
|
path='/tmp' |
|
command -v maim > /dev/null && screenshooter="maim" || ( echo -n "You need to install maim\nhttps://github.com/naelstrof/maim" && exit 1 ) |
|
ocr="false" |
|
lastactionfile="${XDG_DATA_HOME:-$HOME/.local/share}/lastaction" |
|
|
|
#If a project is set we will put screenshots in the project's folder |
|
command -v project > /dev/null && project=$(project current --path) |
|
if [ -n "$project" ]; then |
|
path="$project/screenshots" |
|
#Make the directory if it doesn't exist |
|
mkdir "$path" 2> /dev/null |
|
fi |
|
|
|
filename="$(date +"%Y-%m-%dT%H-%M-%SZ").png" |
|
file="${path}/${filename}" |
|
|
|
[ "$1" = "-w" ] && sleep "$2" && shift && shift |
|
[ "$1" = "-o" ] && ocr="true" && shift |
|
|
|
case "$1" in |
|
"window") |
|
if [ -n "$WAYLAND_DISPLAY" ]; then |
|
notify-send "Can't get current window yet in wayland" |
|
else |
|
maim -i $(xdotool getactivewindow) "$file" |
|
fi |
|
;; |
|
"select") |
|
if [ -n "$WAYLAND_DISPLAY" ]; then |
|
grim -g "$(slurp)" "$file" |
|
else |
|
#maim -s -r crosshair "$file" |
|
maim -s -c 0.41,0.62,0.42,0.2 -l -u "$file" |
|
fi |
|
;; |
|
"monitor") |
|
if [ -n "$WAYLAND_DISPLAY" ]; then |
|
notify-send "No idea" |
|
else |
|
mousex="$(xdotool getmouselocation | awk -F "[: ]" '{print $2}')" |
|
mousey="$(xdotool getmouselocation | awk -F "[: ]" '{print $4}')" |
|
monitors="$(xrandr | grep -o '[0-9]*x[0-9]*[+-][0-9]*[+-][0-9]*')" |
|
|
|
fi |
|
;; |
|
*) |
|
if [ -n "$WAYLAND_DISPLAY" ]; then |
|
grim "$file" |
|
else |
|
maim "$file" |
|
fi |
|
;; |
|
esac |
|
|
|
|
|
|
|
if [ -f "$file" ]; then |
|
if [ -n "$WAYLAND_DISPLAY" ]; then |
|
# Copies the image to your clipboard (ctrl + v) |
|
wl-copy < "$file" |
|
# Copies the filename to primary selection (shift + insert or middle mouse) |
|
echo -n "$file" | wl-copy --primary |
|
else |
|
# Copies the image to your clipboard (ctrl + v) |
|
xclip -selection clipboard -target image/png -i "$file" |
|
# Copies the filename to primary selection (shift + insert or middle mouse) |
|
echo -n "$file" | xclip -selection primary |
|
fi |
|
# Creates notification with file name |
|
notify-send "New Screenshot" "$file" |
|
echo "screenshot $file" > "$lastactionfile" |
|
fi
|
|
|