In /usr/bin/xdg-screensaver line 147:
  [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0;
    ^----------------------^ SC2086: Double quote to prevent globbing and word splitting.
                                 ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
  [ "${XDG_UTILS_DEBUG_LEVEL}" -lt "$1" ] && return 0;


In /usr/bin/xdg-screensaver line 155:
    read first rest
    ^--^ SC2162: read without -r will mangle backslashes.


In /usr/bin/xdg-screensaver line 164:
    binary="`which "$1"`"
            ^----------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(which "$1")"


In /usr/bin/xdg-screensaver line 165:
    binary="`readlink -f "$binary"`"
            ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(readlink -f "$binary")"


In /usr/bin/xdg-screensaver line 166:
    base="`basename "$binary"`"
          ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    base="$(basename "$binary")"


In /usr/bin/xdg-screensaver line 178:
            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
                     ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            command="$(grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word)"


In /usr/bin/xdg-screensaver line 179:
            command="`which "$command"`"
                     ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            command="$(which "$command")"


In /usr/bin/xdg-screensaver line 180:
            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
                   ^----------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            if [ x"$(readlink -f "$command")" = x"$binary" ]; then


In /usr/bin/xdg-screensaver line 194:
    desktop="`basename "$1"`"
             ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    desktop="$(basename "$1")"


In /usr/bin/xdg-screensaver line 203:
            if [ -r $dir/applications/$vendor/$app ]; then
                    ^--^ SC2086: Double quote to prevent globbing and word splitting.
                                      ^-----^ SC2086: Double quote to prevent globbing and word splitting.
                                              ^--^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            if [ -r "$dir"/applications/"$vendor"/"$app" ]; then


In /usr/bin/xdg-screensaver line 205:
            elif [ -r $dir/applnk/$vendor/$app ]; then
                      ^--^ SC2086: Double quote to prevent globbing and word splitting.
                                  ^-----^ SC2086: Double quote to prevent globbing and word splitting.
                                          ^--^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            elif [ -r "$dir"/applnk/"$vendor"/"$app" ]; then


In /usr/bin/xdg-screensaver line 220:
            command="`grep -E "^Exec(\[[^]=]*])?=" "$file_path" | cut -d= -f 2- | first_word`"
                     ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            command="$(grep -E "^Exec(\[[^]=]*])?=" "$file_path" | cut -d= -f 2- | first_word)"


In /usr/bin/xdg-screensaver line 221:
            command="`which "$command"`"
                     ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            command="$(which "$command")"


In /usr/bin/xdg-screensaver line 231:
exit_success()
^-- SC2120: exit_success references arguments, but none are ever passed.


In /usr/bin/xdg-screensaver line 250:
        echo "xdg-screensaver: $@" >&2
                               ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-screensaver line 266:
        echo "xdg-screensaver: $@" >&2
                               ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-screensaver line 278:
        echo "xdg-screensaver: $@" >&2
                               ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-screensaver line 290:
        echo "xdg-screensaver: $@" >&2
                               ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-screensaver line 302:
        echo "xdg-screensaver: $@" >&2
                               ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-screensaver line 314:
        echo "xdg-screensaver: $@" >&2
                               ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-screensaver line 334:
    file=`basename "$1"`
         ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    file=$(basename "$1")


In /usr/bin/xdg-screensaver line 357:
        DIR=`dirname "$1"`
            ^------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        DIR=$(dirname "$1")


In /usr/bin/xdg-screensaver line 377:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-screensaver line 382:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-screensaver line 387:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-screensaver line 396:
if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
     ^------------------------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
if [ "${XDG_UTILS_DEBUG_LEVEL-0}" -lt 1 ]; then


In /usr/bin/xdg-screensaver line 401:
    xdg_redirect_output=" >&2"
    ^-----------------^ SC2034: xdg_redirect_output appears unused. Verify use (or export if used externally).


In /usr/bin/xdg-screensaver line 455:
      elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
           ^-- SC2092: Remove backticks to avoid executing output.
           ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
      elif $(dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1) ; then DE=gnome;


In /usr/bin/xdg-screensaver line 458:
      elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=enlightenment;
                ^------^ SC2153: Possible misspelling: DESKTOP may not be assigned, but desktop is.
                ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
      elif echo "$DESKTOP" | grep -q '^Enlightenment'; then DE=enlightenment;


In /usr/bin/xdg-screensaver line 511:
    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    version=$(LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE')


In /usr/bin/xdg-screensaver line 512:
    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
          ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    major=$(echo "$version" | sed 's/KDE.*: \([0-9]\).*/\1/')


In /usr/bin/xdg-screensaver line 513:
    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
          ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    minor=$(echo "$version" | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/')


In /usr/bin/xdg-screensaver line 514:
    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                  ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    release=$(echo "$version" | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/')


In /usr/bin/xdg-screensaver line 515:
    test "$major" -gt 3 && return $1
                                  ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    test "$major" -gt 3 && return "$1"


In /usr/bin/xdg-screensaver line 516:
    test "$minor" -gt 5 && return $1
                                  ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    test "$minor" -gt 5 && return "$1"


In /usr/bin/xdg-screensaver line 517:
    test "$release" -gt 4 && return $1
                                    ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    test "$release" -gt 4 && return "$1"


In /usr/bin/xdg-screensaver line 538:
   screensaver_file="/tmp/xdg-screensaver-$USER-"`echo $DISPLAY | sed 's/:/-/g'`
                                                 ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.
                                                       ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
   screensaver_file="/tmp/xdg-screensaver-$USER-"$(echo "$DISPLAY" | sed 's/:/-/g')


In /usr/bin/xdg-screensaver line 543:
   screensaver_file="$HOME/.xdg-screensaver-"`echo $(hostname)-$DISPLAY | sed 's/:/-/g'`
                                             ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                                   ^---------^ SC2046: Quote this to prevent word splitting.
                                                               ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
   screensaver_file="$HOME/.xdg-screensaver-"$(echo $(hostname)-"$DISPLAY" | sed 's/:/-/g')


In /usr/bin/xdg-screensaver line 545:
lockfile_command=`which lockfile 2> /dev/null`
                 ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
lockfile_command=$(which lockfile 2> /dev/null)


In /usr/bin/xdg-screensaver line 554:
     local try
     ^-------^ SC2039: In POSIX sh, 'local' is undefined.


In /usr/bin/xdg-screensaver line 559:
        try=$(($try+1))
               ^--^ SC2004: $/${} is unnecessary on arithmetic variables.


In /usr/bin/xdg-screensaver line 630:
  if [ -n "$DISPLAY" -a "$1" = "suspend" ] ; then
                     ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.


In /usr/bin/xdg-screensaver line 634:
          tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
                  ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
          tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX)


In /usr/bin/xdg-screensaver line 647:
  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
          ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
  tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX)


In /usr/bin/xdg-screensaver line 664:
  xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2`
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
  xprop_pid=$(grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2)


In /usr/bin/xdg-screensaver line 666:
  if [ -n "$xprop_pid" ] && ps -p "$xprop_pid" 2> /dev/null | grep xprop > /dev/null; then
                            ^-- SC2009: Consider using pgrep instead of grepping ps output.


In /usr/bin/xdg-screensaver line 668:
     kill -s TERM $xprop_pid
                  ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
     kill -s TERM "$xprop_pid"


In /usr/bin/xdg-screensaver line 673:
XPROP=`which xprop 2> /dev/null`
      ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
XPROP=$(which xprop 2> /dev/null)


In /usr/bin/xdg-screensaver line 682:
  if $XPROP -id $window_id > /dev/null 2> /dev/null; then
                ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
  if $XPROP -id "$window_id" > /dev/null 2> /dev/null; then


In /usr/bin/xdg-screensaver line 683:
     DEBUG 3 Window $window_id exists
                    ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
     DEBUG 3 Window "$window_id" exists


In /usr/bin/xdg-screensaver line 685:
     DEBUG 3 Window $window_id does not exist
                    ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
     DEBUG 3 Window "$window_id" does not exist


In /usr/bin/xdg-screensaver line 699:
  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
          ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
  tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX)


In /usr/bin/xdg-screensaver line 706:
    while read wid pid; do
          ^--^ SC2162: read without -r will mangle backslashes.


In /usr/bin/xdg-screensaver line 707:
      if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then
         ^-- SC2009: Consider using pgrep instead of grepping ps output.


In /usr/bin/xdg-screensaver line 709:
        if [ $wid = $window_id ] ; then
             ^--^ SC2086: Double quote to prevent globbing and word splitting.
                    ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
        if [ "$wid" = "$window_id" ] ; then


In /usr/bin/xdg-screensaver line 716:
  ) < $screensaver_file > $tmpfile
      ^---------------^ SC2086: Double quote to prevent globbing and word splitting.
                          ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
  ) < "$screensaver_file" > "$tmpfile"


In /usr/bin/xdg-screensaver line 727:
  $XPROP -id $window_id -spy > /dev/null &
             ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
  $XPROP -id "$window_id" -spy > /dev/null &


In /usr/bin/xdg-screensaver line 730:
  echo "$window_id:$xprop_pid" >> $tmpfile
                                  ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
  echo "$window_id:$xprop_pid" >> "$tmpfile"


In /usr/bin/xdg-screensaver line 750:
                  string:$window_id \
                         ^--------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
                  string:"$window_id" \


In /usr/bin/xdg-screensaver line 759:
            value=`cat "$screensaver_file.cookie"`
                  ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            value=$(cat "$screensaver_file.cookie")


In /usr/bin/xdg-screensaver line 765:
                      uint32:$value \
                             ^----^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
                      uint32:"$value" \


In /usr/bin/xdg-screensaver line 794:
            value=`cat "$screensaver_file.cookie"`
                  ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            value=$(cat "$screensaver_file.cookie")


In /usr/bin/xdg-screensaver line 800:
                      uint32:$value \
                             ^----^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
                      uint32:"$value" \


In /usr/bin/xdg-screensaver line 808:
        status=`dbus-send --session \
               ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        status=$(dbus-send --session \
                          --dest=org.freedesktop.ScreenSaver \
                          --type=method_call \
                          --print-reply \
                          --reply-timeout=2000 \
                          /ScreenSaver \
                          org.freedesktop.ScreenSaver.GetActive \
                          | grep boolean | cut -d ' ' -f 5)


In /usr/bin/xdg-screensaver line 817:
        if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then
                                  ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.


In /usr/bin/xdg-screensaver line 864:
        status=`dcop kdesktop KScreensaverIface isEnabled`
               ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        status=$(dcop kdesktop KScreensaverIface isEnabled)


In /usr/bin/xdg-screensaver line 892:
        timeout=`xset_screensaver_timeout`
                ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        timeout=$(xset_screensaver_timeout)


In /usr/bin/xdg-screensaver line 902:
            value=`cat "$screensaver_file.xset"`
                  ^----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            value=$(cat "$screensaver_file.xset")


In /usr/bin/xdg-screensaver line 903:
            xset s $value > /dev/null
                   ^----^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            xset s "$value" > /dev/null


In /usr/bin/xdg-screensaver line 920:
        timeout=`xset_screensaver_timeout`
                ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        timeout=$(xset_screensaver_timeout)


In /usr/bin/xdg-screensaver line 943:
  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
          ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
  tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX)


In /usr/bin/xdg-screensaver line 945:
  cat "$screensaver_file" 2> /dev/null | (
      ^-----------------^ SC2002: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.


In /usr/bin/xdg-screensaver line 948:
    while read wid pid; do
          ^--^ SC2162: read without -r will mangle backslashes.


In /usr/bin/xdg-screensaver line 949:
      if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then
         ^-- SC2009: Consider using pgrep instead of grepping ps output.


In /usr/bin/xdg-screensaver line 954:
  ) > $tmpfile
      ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
  ) > "$tmpfile"


In /usr/bin/xdg-screensaver line 963:
  (while [ -f "$screensaver_file" ]; do $*; sleep 50; done) > /dev/null 2> /dev/null &
                                        ^-- SC2048: Use "$@" (with quotes) to prevent whitespace problems.


In /usr/bin/xdg-screensaver line 1023:
' $window_id $screensaver_file &
  ^--------^ SC2086: Double quote to prevent globbing and word splitting.
             ^---------------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
' "$window_id" "$screensaver_file" &


In /usr/bin/xdg-screensaver line 1065:
        status=`dbus-send --session \
               ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        status=$(dbus-send --session \
                          --dest=org.gnome.ScreenSaver \
                          --type=method_call \
                          --print-reply \
                          --reply-timeout=2000 \
                          /org/gnome/ScreenSaver \
                          org.gnome.ScreenSaver.GetActive \
                          | grep boolean | cut -d ' ' -f 5)


In /usr/bin/xdg-screensaver line 1074:
        if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then
                                  ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.


In /usr/bin/xdg-screensaver line 1141:
        status=`dbus-send --session \
               ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        status=$(dbus-send --session \
                          --dest=org.mate.ScreenSaver \
                          --type=method_call \
                          --print-reply \
                          --reply-timeout=2000 \
                          /org/mate/ScreenSaver \
                          org.mate.ScreenSaver.GetActive \
                          | grep boolean | cut -d ' ' -f 5)


In /usr/bin/xdg-screensaver line 1150:
        if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then
                                  ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.


In /usr/bin/xdg-screensaver line 1223:
        status=`dbus-send --session \
               ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        status=$(dbus-send --session \
                          --dest=org.cinnamon.ScreenSaver \
                          --type=method_call \
                          --print-reply \
                          --reply-timeout=2000 \
                          /org/cinnamon/ScreenSaver \
                          org.cinnamon.ScreenSaver.GetActive \
                          | grep boolean | cut -d ' ' -f 5)


In /usr/bin/xdg-screensaver line 1406:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-screensaver line 1417:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.

For more information:
  https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ...
  https://www.shellcheck.net/wiki/SC2034 -- xdg_redirect_output appears unuse...
  https://www.shellcheck.net/wiki/SC2039 -- In POSIX sh, 'local' is undefined.