我正在努力实现的目标:
我的问题是我似乎无法正确处理打开的wmctrl窗口id和xdotool焦点窗口之间的检查(一个是整数,一个是十六进制)。我的if语句需要工作,但是我在查找如何正确检查包含wmcrtl窗口id数据的数组的xdotool窗口数据时遇到了问题。
fid
=焦点窗口ID
appArray
在数组中包含wmctrl
个窗口ID。
echo -e "-------Current array of active windows-----"
for i in ${appArray[@]}; do echo $i; done
while :
do
#UPDATES CURRENT WINDOW FOCUS
fid=$(xdotool getactivewindow)
#CHECK IF WINDOW OF FOCUS IS AT TOP OF THE ARRAY
if [ $appArray == $(printf 0x0%x $fid) ] ;
#IF IT IS THEN DO NOTHING
then
echo -e "----current window is at top of array, and active------"
else
#IF IT ISNT THEN UPDATE ARRAY
echo -e "\n------Adding new focus window to top of array------"
appArray=($(printf 0x0%x $fid) "${appArray[@]}");
#find location of duplicate if any
newArray=$(echo "${appArray[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')
appArray=("${newArray[@]}")
#prints the array of applications
for i in ${appArray[@]}; do echo $i; done
echo "----------------------------------------------------"
fi
done