2013-03-07 2 views
0

파이썬에서 X 초마다 창 제목을 확인하고 싶습니다. 지금까지 큰 문제는 없었고 xprop과 같은 많은 것들을 발견했습니다.
지금 여기에 까다로운 부분입니다 : 때 usind은 xprop -id 난 단지 내가 다른 곳이 아니라 내가 필요로하는 것을 본 적이 게 아니에요파이썬에서 창 제목 가져 오기 - 어려운 방법?

_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 24625202 
SM_CLIENT_ID(STRING) = "1028c1d320b210000136266856800000015460035" 
WM_CLIENT_LEADER(WINDOW): window id # 0x3a00004 

같은 2 개, 3 라인을 얻을 [ID] 대신 포인터 꼬추의 - 어떻게 그 제목을 얻을 수 있습니까? 이 설정이 잘못되었거나 모든 것이 잘못되었습니다.

PS : 나는 BTW

답변

0

xprop -name somewindowname ...를 사용하여 모든 정보를 얻을 페도라 18을 사용하고 있습니다. 그러나 somewindowname을 찾으려고하면 해당 양식이 유용하지 않을 수 있습니다.

또 다른 접근법은 윈도우 ID가 16 진수 (예 : 0x04a27cf6)라고 가정하면 숫자에 wmctrl -l 및 grep을 사용하는 것입니다. 예를 들어, "은 xprop man 페이지"라는 제목 0x04a27cf6 창 내 컴퓨터 (TINI)에

wmctrl -l | grep 0x04a27cf6 

0x04a27cf6 4 tini xprop man page 

주를 생산, "wmctrl은 함께 유닉스/리눅스 명령 줄 도구가 상호 작용할 수있다 EWMH/NetWM 호환 X 창 관리자 "(tomas.styblo.namewikipedia에서 설명). 여러 리눅스 배포판의 패키지 관리자가 설치할 수 있습니다.

편집 :xprop으로 n.m.의 답변을 읽은 후 더 많은 테스트를 실시했습니다. 어제의 시험에서 xprop -id 0x4a27cf7은 단 하나의 라인 인 _NET_WM_USER_TIME(CARDINAL) = 440569797을 출력합니다. 그것은 "당신의 터미널 방식을 스크롤"하는 문제가 아니 었습니다. 불행히도, 나는 창 0x4a27cf7을 더 이상 사용할 수 없으며, 이제는 n.m.의 답변에서 알 수 있듯이 모든 테스트가 제대로 작동하는 것처럼 보입니다. 예를 들어, 명령 후에

for i in $(wmctrl -l |tee w-wmctrl | cut -c-10); do xprop -id $i | grep ^WM_NAME; done > w-xprop 

파일 w-wmctrlw-xprop 및 각각 그들 39 개 개의 라인을 가지며, 예외없이 diff -y w-*|less 통해 나란히 비교는 두 파일 모두에서 동일한 명칭을 나타낸다.

+0

좋습니다. 그러나 "out-of-the-box"도구를 고수 할 여지가 있습니까? 나는 많은 의존성을 원하지 않는다. 사실 xprop은 -id 메소드가 아니라 필요한 정보를 줄 수있는 것 같습니다. – AdmiralSnackbar

0

으로 동일한 속성 집합을 가져오고 마우스 클릭시 두 경우에서 같은 창을 선택하면 동일한 속성 집합이 나타납니다. 창 ID를 얻으려면 xwininfo을 사용하고 창을 클릭하십시오.

작은 수의 속성은 목록이 크고 빈 줄이 많기 ​​때문에 표시 될 수 있습니다. 터미널을 위로 스크롤 해보십시오.