![xfce4/xfwm4에서 최근에 초점을 맞춘 응용 프로그램 창을 활성화하는 방법은 무엇입니까?](https://linux55.com/image/131885/xfce4%2Fxfwm4%EC%97%90%EC%84%9C%20%EC%B5%9C%EA%B7%BC%EC%97%90%20%EC%B4%88%EC%A0%90%EC%9D%84%20%EB%A7%9E%EC%B6%98%20%EC%9D%91%EC%9A%A9%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EC%B0%BD%EC%9D%84%20%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
특정 애플리케이션(F1 크롬, F2 터미널 등)에 기능 키를 사용합니다. 올바른 응용 프로그램을 활성화하기 위해 바로 가기 키에 바인딩된 스크립트가 있는데 작동하지만 최근에 초점을 맞춘 창을 활성화하지 않습니다. 스크립트는 wmctrl -lx
생성 순서와 반대 순서로 나열된 창을 나열합니다. "가장 가까운 터미널 창 활성화" 스크립트를 작성할 수 있도록 특정 창의 활성화 순서를 요청하거나 추적할 수 있는 방법이 있습니까?
또는 창을 반복할 때 사용되는 창 스택 순서를 유지하여 내 문제를 해결할 수 있는 것처럼 보이지만 xfwm4
해당 창 스택 순서를 가져오는 명령줄 인터페이스가 표시되지 않습니다.
답변1
스크립트에서는 wmctrl
, xprop
및 를 사용하여 awk
창 관리자가 관리하는 활성화 시간을 사용할 수 있습니다. (예를 들어wm-spec 1.5). 예를 들어 다음과 같이 (여러 줄) 명령줄을 사용합니다.
W=$(wmctrl -l | \
awk '$ ~ "Terminal" {print $1;}' | while read x ; do \
echo "$x $(xprop -id $(xprop -id $x \
| awk '$1 ~ /_NET_WM_USER_TIME/ {print $NF}' \
) \
| awk '{print $NF}' \
)" ; \
done | awk '$2>t {i=$1; t=$2} END {print i}' \
)
즉:
- 필터링을 통해 목록을 전달하여
wmctrl
지정된 애플리케이션의 창 ID(위 예에서는 "터미널")를 선택합니다. - 이를 (가장 안쪽)에 전달하여
xprop
마지막으로 사용된 창 ID를 가져옵니다. xprop
다른 (외부)를 사용하여 원래 창의 "가장 창"의 (단일) 속성 인 해당 타임스탬프를 가져옵니다_NET_WM_USER_TIME_WINDOW
.awk
가장 큰 타임스탬프가 있는 ID를 보고하는 필터를 통해 생성된 모든 ID 및 타임스탬프 행을 전달합니다 .