grimshot: Allow configuring default directory

`$XDG_PICTURES_DIR` is a very loosely defined thing; it's a directory
where "pictures" are stored, which no clearer definition.

Some people use it for photographs they take, other use it for images
they save from the internet, and others use it for screenshots.

Having lots of tools save their output there (anything that's an image
goes there) can easily make it a kitchen sink.

To work around this, use `$XDG_SCREENSHOTS_DIR` as a target directory
for screenshots by default. If not-so-standard variable is unset, fall
back to the previous setting; `$XDG_PICTURES_DIR`.

This also drops an external dependency, which was (a) an overkill (b)
not flexible enough.
This commit is contained in:
Hugo Osvaldo Barrera 2020-05-01 10:51:18 +02:00 committed by Drew DeVault
parent e5fed6b246
commit dce8abcdab

View file

@ -19,9 +19,17 @@
## `grimshot` - usage ## `grimshot` - usage
## `grimshot check` - verify if tools are installed ## `grimshot check` - verify if tools are installed
getTargetDirectory() {
test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && \
source ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
echo ${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}
}
ACTION=${1:-usage} ACTION=${1:-usage}
SUBJECT=${2:-screen} SUBJECT=${2:-screen}
FILE=${3:-$(xdg-user-dir PICTURES)/$(date +'Grimshot %Y-%m-%d %H-%M-%S.png')} FILE=${3:-$(getTargetDirectory)/$(date +'Grimshot %Y-%m-%d %H-%M-%S.png')}
if [ "$ACTION" = "usage" ] ; then if [ "$ACTION" = "usage" ] ; then
echo "Usage:" echo "Usage:"
echo " grimshot copy|save win|screen|output|area [FILE]" echo " grimshot copy|save win|screen|output|area [FILE]"