Gnome에서 활성 창 프로세스 / 제목을 검색 할 수 있습니까? 창과 창

Gnome 2 데스크탑에서 현재 활성 (초점) 창 정보를 가져 오는 솔루션이 필요합니다. 나는 주로 해당 창과 창 제목을 실행하는 프로세스에 관심이 있습니다.

가능합니까?

해결책:

창 제목 얻기 :

xwininfo -root -children | grep $(printf '%x\n' $(xdotool getwindowfocus)) | grep -oEi '"[^"]+"' | head -1

프로세스 이름 얻기 :

ps -e | grep $(xdotool getwindowpid $(xdotool getwindowfocus)) | grep -v grep | awk '{print $4}'

또는:

cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm



답변

다용도 X 윈도우 자동화 도구 인 xdotool 을 사용할 수 있습니다 .

focused_window_id=$(xdotool getwindowfocus)
active_window_id=$(xdotool getactivewindow)
active_window_pid=$(xdotool getwindowpid "$active_window_id")

(나는 집중과 능동의 차이점이 무엇인지 모른다.)

( wmctrl 이 이것을 할 수 있다고 생각 했지만 분명히 그렇지 않습니다.)


답변

다음과 같이 간단합니다.

xdotool getactivewindow getwindowname

행운이 있기를 바랍니다.


답변

프로세스 이름을 얻으려면 OP 솔루션보다 (IMO) 더 간단합니다 (즉 ps, grepawk, 없이 ).

cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm

또는 줄 끝을 원한다면 :

echo $(cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm)


답변

xwininfo 명령 ( http://www.xfree86.org/4.2.0/xwininfo.1.html)을 사용해보십시오 . 창 제목을 반환하고 프로세스가 진행되는 한 …

X는 ID를 할당하고 창의 부모 PID가되었으며 기본적으로이를 숨겨서 Gnome이 NET_WM_PID를 지원한다고 가정하면 2001 년의이 패치는 http://mail.gnome.org/ archives / gtk-devel-list / 2001-October / msg00238.html 이면이 게시물 ( http://www.mail-archive.com/devel@xfree86.org/msg05809.html)을 검토 할 수 있습니다 . 윈도우 ID를 PID로 변환하는 짧은 C 프로그램입니다.


답변

나는 그 질문이 오래되었다는 것을 알고 있지만 xprop여기에서도 언급해야한다고 생각 합니다. X에서 쉽게 구할 수 있습니다. 대화식으로 사용할 수 있습니다.

  1. xprop마우스 커서를 사용하여 원하는 창을 입력 하고 선택한 다음
  2. WM_NAME창의 제목을 _NET_WM_PID제공하고 pid를 제공합니다

또는 xprop전달 -id또는 -name옵션 을 통해 필요한 창을 직접 알 수 있습니다 . 를 사용 awk하면 활성 창 ID를 가져 와서 다음 xprop과 같이 다시 전달할 수 있습니다 ( here ).

xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}")

마지막으로, Favorite Tool ™ (예 : grep또는 sed)을 사용하여 필요한 값을 정리할 수 있습니다. 예를 들어 pid, 위 명령의 출력은 다음으로 파이프 될 수 있습니다 sed.sed -nE 's/^_NET_WM_PID.*= ([0-9]+)/\1/p'


답변