commit dce8abcdab7a0a65c27e5280b702a592ab557be6
parent e5fed6b246533a9bcf0d9326075f7c93be2aeec5
Author: Hugo Osvaldo Barrera <hugo@barrera.io>
Date: Fri, 1 May 2020 10:51:18 +0200
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.
Diffstat:
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git 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]"