응용 프로그램을 시작할 때 WM_CLASS를 어떻게 할당합니까?

응용 프로그램을 시작할 때 WM_CLASS를 어떻게 할당합니까?

xpropmupdf-gl 을 사용하고 있는데 WM_CLASS. 하지만 mupdf-x11을 사용하면 WM_CLASS.

mupdf-gl에 대한 xprop의 출력:

_NET_WM_DESKTOP(CARDINAL) = 2
_NET_WM_STATE(ATOM) =
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_PID(CARDINAL) = 12656
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_HINTS(WM_HINTS):
                Initial state is Normal State.
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified size: 1088 by 1668
WM_CLIENT_MACHINE(STRING) = "elariel"
WM_ICON_NAME(STRING) = "EEE Transformer CT.pdf - 1 / 4"
WM_NAME(STRING) = "EEE Transformer CT.pdf - 1 / 4"

mupdf-x11에 대한 xprop의 출력:

WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 2
_NET_WM_NAME(UTF8_STRING) = "EEE Transformer CT.pdf - 1/4 (96 dpi)"
WM_LOCALE_NAME(STRING) = "C"
WM_CLIENT_MACHINE(STRING) = "elariel"
WM_ICON_NAME(STRING) = "EEE Transformer CT.pdf - 1/4 (96 dpi)"
WM_NAME(STRING) = "EEE Transformer CT.pdf - 1/4 (96 dpi)"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_CLASS(STRING) = "mupdf", "MuPDF"
WM_HINTS(WM_HINTS):
                bitmap id # to use for icon: 0x2800091
                bitmap id # of mask for icon: 0x2800093

창을 시작할 때 창에 WM_CLASS를 어떻게 할당합니까?

답변1

위 댓글대로 확인되었습니다. 프로젝트의 소스 코드를 보면 "Platform" 아래에 여러 개의 폴더가 있는 것을 볼 수 있습니다. X11 폴더에서 다음과 같은 소스 코드를 찾을 수 있습니다.

if (classhint)
{
    classhint->res_name = "mupdf";
    classhint->res_class = "MuPDF";
    XSetClassHint(xdpy, xwin, classhint);
    XFree(classhint);
}

GL 플랫폼 폴더에는 존재하지 않습니다. 해당 플랫폼에 대한 속성 세트를 원하는 경우 개발자에게 개선 요청을 제출해야 합니다.

답변2

xprop를 사용하여 속성을 설정할 수 있습니다.

xprop -name "ma_window" -f WM_TRUC 8s -set WM_TRUC "The_Truc"

xprop -name "ma_window" WM_TRUC
WM_TRUC(STRING) = "The_Truc"

관련 정보