LukeSmithxyz / voidrice

My dotfiles (deployed by LARBS)
GNU General Public License v3.0
4.29k stars 1.21k forks source link

Specify output directory for screenshot script maimpick #1432

Open linnabraham opened 2 months ago

linnabraham commented 2 months ago

Screenshots taken using the maimpick script appears in the home directory by default. Can a default location be specified and which can be overriden using an environment variable or something?

zenny commented 1 month ago

Screenshots taken using the maimpick script appears in the home directory by default. Can a default location be specified and which can be overriden using an environment variable or something?

You can make the changes as follows in ~/.local/bin/maimpick:

#!/bin/sh

# This is bound to Shift+PrintScreen by default, requires maim. It lets you
# choose the kind of screenshot to take, including copying the image or even
# highlighting an area to copy. scrotcucks on suicidewatch right now.

# variables
output="$(date '+%y%m%d-%H%M-%S').png"
xclip_cmd="xclip -sel clip -t image/png"
ocr_cmd="xclip -sel clip"
outdir="path2desired-location"

case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)\\ncopy selected image to text" | dmenu -l 7 -i -p "Screenshot which area?")" in
    "a selected area") maim -u -s pic-selected-"${output}" ;;
    "current window") maim -B -q -d 0.2 -i "$(xdotool getactivewindow)" $outdir/pic-window-"${output}" ;;
    "full screen") maim -q -d 0.2 $outdir/pic-full-"${output}" ;;
    "a selected area (copy)") maim -u -s | ${xclip_cmd} ;;
    "current window (copy)") maim -q -d 0.2 -i "$(xdotool getactivewindow)" | ${xclip_cmd} ;;
    "full screen (copy)") maim -q -d 0.2 | ${xclip_cmd} ;;
    "copy selected image to text") tmpfile=$(mktemp /tmp/ocr-XXXXXX.png) && maim -u -s > "$tmpfile" && tesseract "$tmpfile" - -l eng | ${ocr_cmd} && rm "$tmpfile" ;;
esac

I have added an outdir variable where you have to append the location where you want to save your screenshots and append the $outdir variables in two lines. Hope this helps.

Cheers, /zenny