Privind captura de ecran, cred că cauți o modalitate de a o realiza în python.
Obțineți ordinea z a ferestrelor
Daca esti pe X, puteți folosi (în orice limbă care are legături la - ) Wnck. Totuși, Wnck nu funcționează pe Wayland. Fragmentul de mai jos arată cum se face în python. Ordinea listei de ieșire este în ordinea ferestrei z-order.
Rețineți că rezultatul Wnck.get_windows_stacked()
nu trebuie modificate. Desigur, puteți lucra cu datele, preluate din ele, puteți obține ordinea ferestrelor și proprietățile acestora. În fragment, obișnuiam doar să obțin xid și numele ferestrei, dar multe sunt posibile.
Exemplu
import gi
gi.require_version ("Wnck", "3.0")
din gi.repository import Wnck
def get_stack():
z_order_list = []
scr = Wnck.Screen.get_default()
scr.force_update()
pentru w în scr.get_windows_stacked():
dacă w.get_window_type() == Wnck.WindowType.NORMAL:
z_order_list.append([w.get_xid(), w.get_name()])
z_order_list.reverse()
returnează z_order_list
wlist = get_stack()
pentru w în wlist:
print(w[0], w[1])
Exemplu de ieșire:
92306612 *IDLE Shell 3.8.10*
92274937 zorder.py - /home/jacob/Bureaublad/zorder.py (3.8.10)
96468995 Obțineți ordinea aplicațiilor pe GUI - Întrebați Ubuntu - Mozilla Firefox
98568913 Geen titel 1 - LibreOffice Writer
98566678 Rooster Jacob 2021-2022.ods - LibreOffice Calc
94371847 Tilix: jacob@jacob-ZN220IC-K:~
unde prima este cea mai recentă fereastră, pentru că am inversat lista.
Rețineți că Gdk are o metodă similară.