1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2025-04-07 17:44:04 -04:00

Merge pull request from subnut/subnut/posix-sed

Improve POSIX-compatibility of picom-trans
This commit is contained in:
yshui 2021-06-06 15:59:24 +01:00 committed by GitHub
commit be24c0d980
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -77,21 +77,15 @@ lineno=
option=
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/')"
done
# This takes into account the fact that getopts stops on
# any argument it doesn't recognize or errors on. This
# allows for things like `picom-trans -5` as well
# as `picom-trans -c +5 -s` (contrived example).
# We make getopts stop on any argument it doesn't recognize
# or errors on. This allows for things like `picom-trans -5`
# as well as `picom-trans -c +5 -s` (contrived example).
while test $# -gt 0; do
# Reset option index
OPTIND=1
# Read options
while getopts 'hscrtdgn:w:o:-:' option "$@"; do
while getopts ':hscrtdgn:w:o:-:' option "$@"; do
if test "$option" = '-'; then
case "$OPTARG" in
help | select | current | reset | toggle | delete | get)
@ -102,7 +96,7 @@ while test $# -gt 0; do
OPTIND=$((OPTIND + 1))
;;
name=* | window=* | opacity=*)
v=$(echo "$OPTARG" | sed 's/^[^=]\+=//')
v=$(echo "$OPTARG" | sed -E 's/^[^=]+=//')
;;
*)
echo "$0: illegal option $OPTARG" >& 2
@ -127,7 +121,7 @@ while test $# -gt 0; do
n) wprefix='-name'; window=$OPTARG ;;
w) wprefix='-id'; window=$OPTARG ;;
o) opacity=$OPTARG ;;
\?) exit 1 ;;
\?) break ;;
esac
done
@ -137,10 +131,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')
# Validate opacity value
if test -z "$action" && ! echo "$opacity" | grep -q '^[+-]\?[0-9]\+$'; then
if test -z "$action" && ! echo "$opacity" | grep -qE '^[+-]?[0-9]+$'; then
echo "Invalid opacity specified: $opacity."
exit 1
fi
@ -213,7 +207,7 @@ fi
# Get current opacity.
cur=$(xprop -id "$topmost" -notype _NET_WM_WINDOW_OPACITY \
| sed 's/^.*\b\([0-9]\+\).*$\|^.*$/\1/')
| sed -E 's/^_NET_WM_WINDOW_OPACITY = ([0-9]*)$|^.*$/\1/')
# Remove the opacity property.
if test x"$action" = x'delete' -o \( x"$action" = x'toggle' -a -n "$cur" \); then