i3wm에서 xzoom을 부동으로 만들기

i3wm에서 xzoom을 부동으로 만들기

구성하려고 하는데i3따라서 xzoom항상 부동 모드에서 시작됩니다.

문제는 xzoom의 창에 a가 없고 창이 생성될 때 설정되지 않지만 약간의 지연 후에 설정된다는 것입니다 WM_CLASS.WM_NAME

처음 몇 밀리초 동안의 속성은 다음과 같습니다.

$ xzoom & sleep .01; xprop -id 0x2200001
_NET_WM_DESKTOP(CARDINAL) = 0
WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0x0
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_ICON_NAME(STRING) = "xzoom"

보시다시피, 이를 구별하는 유일한 점은 WM_ICON_NAME몇 밀리초 후에 헤더를 추가한다는 것입니다.

$ xprop
WM_NAME(STRING) = "xzoom x4"
_NET_WM_DESKTOP(CARDINAL) = 0
WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0x0
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_ICON_NAME(STRING) = "xzoom"

일치하는 창을 사용하면 WM_NAME다른 창이 원래 위치로 돌아가기 전에 스스로 재정렬되면서 화면이 끔찍하게 깜박입니다.

for_window [title="xzoom*"] floating enable

나는명령 격언그럴 것 같지만 WM_ICON_NAME아무것도 찾을 수 없었습니다.

부동 모드에서 프로그램을 시작하는 다른 방법이 있습니까?

답변1

다시 컴파일하여 xzoom에 WM_CLASS를 추가할 수 있습니다.

    XChangeProperty(dpy, win, XA_WM_CLASS, XA_STRING, 8,
                    PropModeReplace,
                    (unsigned char *)progname, strlen(progname));

XA_WM_ICON_NAME어디가 설정된 다음 줄에 바로 있습니다.

그런 다음 for_window [instance="xzoom"] floating enable i3 구성에서 나를 위해 일했습니다!

이 오래된 소프트웨어가 여전히 잘 작동해서 다행입니다 :)

답변2

또는 i3 구성에 다음 줄을 추가해 볼 수 있습니다. 이 줄은 창 제목과 정확하게 일치해야 합니다.

for_window [title="^xzoom"] border none; floating enable

그렇긴 하지만, 사용자 정의 컴파일이 항상 선택 사항이라는 것을 알게 되어 기쁩니다.

관련 정보