답변:
wmctrl을 설치 했다고 가정합니다 ( sudo apt-get install wmctrl없는 경우 실행 ).
명령 :
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
마지막으로 열린 gedit창을 올립니다 . 다른 응용 프로그램으로 교체하십시오.
pgrep gedit
gedit의 pid를 얻는다
wmctrl -lp
모든 창과 그들이 속한 pid를 나열합니다.
awk '{ print $1 }'
window-id (줄의 첫 번째 문자열)를 분리합니다.
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
따라서 마지막으로 생성 된 창의 window-id를 찾습니다 gedit(출력 결과 wmctrl -lp는 시간 순서대로 생성 된 순서대로 창 을 나열합니다 (응용 프로그램에 여러 창이 tail -1있는 경우 마지막 창을 반환 함)).
wmctrl -ia
그 후 창을 window-id
... 응용 프로그램을 인수로 실행하려면 다음을 수행하십시오.
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.sh다음과 같이 실행하십시오 (예 :)
/path/to/switchto.sh firefox
이론적 으로 명령 :
xdotool search --class gedit windowactivate
(같은 종류) 똑같이해야한다. 이 경우 처음 발견 된 창을 올려야합니다 gedit.
그러나 덜 견고 해 보입니다. 내 시스템 (Unity)에서는 전혀 아무것도하지 않았습니다.