스크립트에서 현재 창 클래스 이름을 얻는 방법은 무엇입니까?

스크립트에서 현재 창 클래스 이름을 얻는 방법은 무엇입니까?

내 스크립트에서는 현재 활성화된 애플리케이션을 기반으로 다양한 작업을 수행하고 싶습니다. 현재 활성 창 클래스 이름을 얻는 방법은 무엇입니까?

매우 비슷한 질문이 있습니다.xdotool: 현재 창이 bash 스크립트의 특정 클래스에 속하는지 테스트하는 방법은 무엇입니까?그런데 활성창과 클래스명으로 검색된 창이 같은지 확인하고 싶을 뿐입니다. 실제로 클래스 이름을 얻고 싶습니다.

나도 본 적 있어https://superuser.com/a/615946/873855사람들이 창 이름을 얻고 싶어하는 곳. 내 임무는 이것에 매우 가깝습니다. xdotool이나 wmctrl이 이 작업을 수행할 수 있나요?

답변1

X11 또는 Wayland의 XWayland 창에서 이 작업을 수행하려면 xdotool을 사용하여 수행할 수 있습니다(응용 프로그램 클래스의 이름 반환).

$ xdotool getactivewindow getwindowclassname
VSCodium

활성 창이 X11이 아닌 경우(wayland) 다음을 반환합니다.

XGetWindowProperty[_NET_ACTIVE_WINDOW] failed (code=1)
xdo_get_active_window reported an error

답변2

해결책은 다음과 같습니다.

WINDOW_ID=$(xdotool getactivewindow)
CLASS_NAME=$(xprop -id $WINDOW_ID | rg WM_CLASS | cut -d '"' -f2)

관련 문서를 찾을 수 없습니다.getwindowclassname

관련 정보