--- bin/compton-trans.orig 2016-09-07 08:23:44 UTC +++ bin/compton-trans @@ -2,7 +2,7 @@ # # compton-trans -# transset in a bash script +# transset in a sh script # Copyright (c) 2011-2012, Christopher Jeffrey # @@ -46,7 +46,7 @@ v= # Workaround: replace '-5' with '~5' so as not to confuse getopts. for v in "$@"; do - shift && set -- "$@" "$(echo "$v" | sed 's/^-\([0-9]\+%\?\)$/~\1/')" + shift && set -- "$@" "$(echo "$v" | sed 's/^-\([0-9]\{1,\}%\{0,1\}\)$/~\1/')" done # This takes into account the fact that getopts stops on @@ -69,7 +69,7 @@ while test $# -gt 0; do OPTIND=$((OPTIND + 1)) ;; name=* | window=* | opacity=*) - v=$(echo "$OPTARG" | sed 's/^[^=]\+=//') + v=$(echo "$OPTARG" | sed 's/^[^=]\{1,\}=//') ;; *) echo "$0: illegal option $OPTARG" >& 2 @@ -92,7 +92,7 @@ while test $# -gt 0; do n) wprefix='-name'; window=$OPTARG ;; w) wprefix='-id'; window=$OPTARG ;; o) opacity=$OPTARG ;; - \?) exit 1 ;; + \{0,1\}) exit 1 ;; esac done @@ -102,10 +102,10 @@ while test $# -gt 0; do done # clean up opacity. xargs == a poor man's trim. -opacity=$(echo "$opacity" | xargs | sed 's/%//g' | sed 's/^~\([0-9]\+\)$/-\1/') +opacity=$(echo "$opacity" | xargs | sed 's/%//g' | sed 's/^~\([0-9]\{1,\}\)$/-\1/') # Validate opacity value -if test -z "$action" && ! echo "$opacity" | grep -q '^[+-]\?[0-9]\+$'; then +if test -z "$action" && ! echo "$opacity" | grep -q '^[+-]\{0,1\}[0-9]\{1,\}$'; then echo "Invalid opacity specified: $opacity." exit 1 fi @@ -184,7 +184,7 @@ fi # Get current opacity. cur=$(xprop -id "$topmost" -notype _NET_WM_WINDOW_OPACITY \ - | sed 's/^.*\b\([0-9]\+\).*$\|^.*$/\1/') + | sed -n 's/^\(.*^[_[:alnum:]]\)\{0,1\}\([0-9]\{1,\}\).*$/\2/p') test -z "$cur" && cur=0xffffffff cur=$((cur * 100 / 0xffffffff))