2012-03-14 3 views
0

python-xlib을 사용하여 현재 포커스 된 창을 get_input_focus()로 가져올 때 창 이름과 클래스가 Konsole에 올바르게 설정되어 있지만 Chrome 및 Emacs의 경우 창 ID가 모두 유효한 것으로 보이지만 빈 문자열입니다 세). 왜?일부 (예 : Emacs 및 Chrome) X 창에 이름 및 클래스가 표시되지 않는 이유는 무엇입니까?

이 창의 제목과 소유자 프로세스는 어떻게 얻을 수 있습니까? KDE를 사용하기 때문에 DBUS를 사용하는 것이 좋지만 좀 더 일반적인 솔루션을 선호합니다.

답변

0

여기에 비슷한 질문을 찾을 경우 How do I detect the currently focused application?

내가 여기에 아무리 약간 수정 :

cur_window = the_display.get_input_focus().focus 
cur_class = None 
while cur_class is None: 
    cur_name = cur_window.get_wm_name() 
    cur_class = cur_window.get_wm_class() 
    if cur_class is None: 
     cur_window = cur_window.query_tree().parent 

지금 작동합니다.