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
#!/usr/bin/env python3
import gi
gi.require_version ("Wnck", "3.0")
din gi.repository import Wnck
def get_stack():
z_order_list = []
scr = Wnck.Screen.get_default()
# dacă Wnck nu este apelat dintr-o buclă Gtk, avem nevoie de:
scr.force_update()
pentru w în scr.get_windows_stacked():
# cel mai probabil, lucrăm doar cu ferestre normale (fără panouri sau desktop)
dacă w.get_window_type() == Wnck.WindowType.NORMAL:
# adăugând doar xid și nume aici, dar orice este posibil
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ă.