From 84cd71d9af47b44ea5f0aff55bf03b5d4369e96b Mon Sep 17 00:00:00 2001 From: Hugo Osvaldo Barrera Date: Fri, 1 May 2020 10:51:18 +0200 Subject: [PATCH] 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. --- contrib/grimshot | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/contrib/grimshot b/contrib/grimshot index fcd2dbcaa..3ef18ce65 100755 --- a/contrib/grimshot +++ b/contrib/grimshot @@ -19,9 +19,17 @@ ## `grimshot` - usage ## `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} 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 echo "Usage:" echo " grimshot copy|save win|screen|output|area [FILE]"