답변1
스크린샷을 보면 Python에서 이를 달성할 수 있는 방법을 찾고 있는 것 같습니다.
창의 z 순서 가져오기
X에 있다면, -에 바인딩이 있는 모든 언어에서 Wnck를 사용할 수 있습니다. Wnck는 Wayland에서는 작동하지 않습니다. 아래 스니펫은 Python에서 수행되는 방법을 보여줍니다. 출력 목록의 순서는 창 z 순서를 따릅니다.
출력은 다음과 같습니다.Wnck.get_windows_stacked()
수정하면 안 된다. 물론 데이터로 작업하고, 데이터에서 검색하고, 창 순서와 해당 속성을 가져올 수 있습니다. 스니펫에서는 창의 xid와 이름만 가져오곤 했지만많은 것이 가능하다.
예
#!/usr/bin/env python3
import gi
gi.require_version("Wnck", "3.0")
from gi.repository import Wnck
def get_stack():
z_order_list = []
scr = Wnck.Screen.get_default()
# if Wnck is not called from withing a Gtk loop, we need:
scr.force_update()
for w in scr.get_windows_stacked():
# most likely, we only work with normal windows (no panels or desktop)
if w.get_window_type() == Wnck.WindowType.NORMAL:
# only adding xid and name here, but anything is possible
z_order_list.append([w.get_xid(), w.get_name()])
z_order_list.reverse()
return z_order_list
wlist = get_stack()
for w in wlist:
print(w[0], w[1])
예제 출력:
92306612 *IDLE Shell 3.8.10*
92274937 zorder.py - /home/jacob/Bureaublad/zorder.py (3.8.10)
96468995 Get the order of applictaions on GUI - Ask Ubuntu - Mozilla Firefox
98568913 Geen titel 1 - LibreOffice Writer
98566678 Rooster Jacob 2021-2022.ods - LibreOffice Calc
94371847 Tilix: jacob@jacob-ZN220IC-K:~
목록을 반대로 했기 때문에 첫 번째 창이 가장 최근 창입니다.
참고로 Gdk비슷한 방법이 있어요.