나는 I3을 사용하고 있으며 WM_ICON_NAME(STRING)을 사용하여 내 창을 식별하고 있습니다.
이와 비슷한 것을 찾고 있는데 WM_ICON_NAME(STRING)이 있습니다. 이것을 달성하는 것이 가능합니까? 감사해요.
if test $(wmctrl -l | grep "name of my window" 2>&1 | wc -l) -eq 1; then
echo "the window exists"
fi
답변1
WM_ICON_NAME
일반적으로 와 동일하게 설정된다고 가정하여 사용되는 도구는 많지 않습니다 WM_NAME
. 모든 창 ID를 나열하고 xprop
각 창에서 실행하여 다음과 같은 행을 얻을 수 있습니다.
WM_ICON_NAME(STRING) = "myname"
그런 다음 (또는 이와 유사한)을 사용하여 awk
인용된 부분을 추출하고 원하는 문자열과 비교합니다. 다음은 findicon
이를 수행하기 위해 하나의 인수를 사용하는 bash 함수입니다 .
findicon(){
local myname=${1?}
wmctrl -l |
while read id rest
do xprop -id "$id" WM_ICON_NAME
done |
awk -F'"' -v myname="$myname" '
{if($2==myname)found=1}
END {exit !found}'
}
if findicon 'my icon name'
then echo 'found'
fi
답변2
xdotool
클래스 이름과 제목으로 기존 창을 검색 할 수 있습니다 .
if xdotool search --name "name of my window" > /dev/null; then
echo "Window found"
else
echo "Window not found"
fi
위의 코드 예에서 제목이 포함된 창이 있는 경우 xdotool
명령은 종료 상태 0
와 발견된 창 ID 목록을 반환합니다 "name of my window"
.