.bashrc에서 터미널을 최대화할 때 wmctrl의 일관되지 않은 동작

.bashrc에서 터미널을 최대화할 때 wmctrl의 일관되지 않은 동작

나는 이것을 가지고있다

wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz

열 때 터미널을 최대화하기 위해 내 .bashrc 내부에 있습니다. 이상한 점은 무작위로만 작동하는 것 같고, 때로는 터미널이 전체 화면으로 표시되고 때로는 식별 가능한 패턴이 없는 경우도 있다는 것입니다. 이미 열려 있는 터미널에 위 명령을 입력하면 항상 성공합니다.

나는 명령이 xdotool windowsize $(xdotool getactivewindow) 100% 100%(에서이것답변)도 비슷한 효과를 내는데, 내 .bashrc에 배치하면 동일한 산발적 동작이 발생합니다. 다시 말하지만, 이미 열려 있는 프롬프트에서 실행하면 항상 작동합니다. 더 나아가,때때로이 명령이 작동하지 않으면 첫 번째 프롬프트가 표시되기 전에 다음 오류 메시지가 표시됩니다.

XGetWindowProperty[_NET_ACTIVE_WINDOW] failed (code=1)
xdo_get_active_window reported an error
There are no windows in the stack
Invalid window '%1'
Invalid argument count, got 3, expected 2
Usage: windowsize [--sync] [--usehints] [window=%1] width height
If no window is given, %1 is used. See WINDOW STACK in xdotool(1)
--usehints  - Use window sizing hints (like font size in terminals)
--sync      - only exit once the window has resized

이로 인해 현재 활성 창을 찾는 데 전체 오류가 균형을 이루고 있다고 생각됩니다.

저는 XFCE4와 함께 Mint 19.3을 사용하고 있으며 터미널은 urxvt입니다. 이렇게 일관되지 않은 동작을 일으키는 원인은 무엇입니까?

답변1

이는 다음과 같은 것으로 보입니다.XY 문제. 표시되는 터미널과 터미널을 찾아 크기를 조정하려는 셸 시작 스크립트 사이에 경합이 있습니다. OP는 sleep 0.1창을 활성 창으로 찾는 데 충분하다는 것을 발견했습니다.

그러나 올바른 방법은 기본 크기로 터미널을 연 다음 크기를 조정하는 것보다 올바른 초기 크기로 터미널을 여는 것입니다. 초기 크기는 일반적으로 프로그램을 사용하여 X 서버에 로드된 기본값을 통해 지정하거나 터미널 에뮬레이터에 대한 xdb표준 명령을 사용하여 지정할 수 있습니다.-geometry

관련 정보