Antwort1
Wenn ich mir Ihren Screenshot ansehe, vermute ich, dass Sie nach einer Möglichkeit suchen, dies in Python zu erreichen.
Holen Sie sich die Z-Reihenfolge der Fenster
Wenn Sie auf X sind, können Sie (in jeder Sprache, die Bindungen zu - hat) Wnck verwenden. Wnck funktioniert jedoch nicht auf Wayland. Der folgende Codeausschnitt zeigt, wie es in Python gemacht wird. Die Reihenfolge der Ausgabeliste entspricht der Z-Reihenfolge des Fensters.
Beachten Sie, dass die Ausgabe vonWnck.get_windows_stacked()
sollte nicht verändert werden. Sie können natürlich mit den daraus abgerufenen Daten arbeiten, die Reihenfolge der Fenster und ihre Eigenschaften abrufen. Im Snippet habe ich nur die XID und den Namen des Fensters abgerufen, abervieles ist möglich.
Beispiel
#!/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])
Beispielausgabe:
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:~
wobei das erste das aktuellste Fenster ist, da ich die Liste umgekehrt habe.
Beachten Sie, dass Gdkhat eine ähnliche Methode.