Глядя на ваш скриншот, я предполагаю, что вы ищете способ добиться этого в python.
Получить z-порядок окон
Если вы находитесь на Х, вы можете использовать (на любом языке, имеющем привязку к - ) Wnck. Однако Wnck не работает на Wayland. Фрагмент ниже показывает, как это делается в python. Порядок выходного списка соответствует z-порядку окна.
Обратите внимание, что вывод Wnck.get_windows_stacked()
не следует изменять. Вы, конечно, можете работать с полученными из него данными, получать порядок окон и их свойства. Во фрагменте я использовал только xid и имя окна, но многое возможно.
Пример
#!/usr/bin/env python3
импорт ги
gi.require_version("Wnck", "3.0")
из gi.repository импортировать Wnck
защита get_stack():
z_order_list = []
scr = Wnck.Screen.get_default()
# если Wnck не вызывается из цикла Gtk, нам нужно:
scr.force_update()
для w в scr.get_windows_stacked():
# скорее всего мы работаем только с обычными окнами (без панелей и рабочего стола)
если w.get_window_type() == Wnck.WindowType.NORMAL:
# здесь добавляем только xid и имя, но все возможно
z_order_list.append([w.get_xid(), w.get_name()])
z_order_list.reverse()
вернуть z_order_list
wlist = get_stack()
для w в wlist:
печать (ш [0], ш [1])
Пример вывода:
92306612 *Оболочка IDLE 3.8.10*
92274937 zorder.py - /home/jacob/Bureaublad/zorder.py (3.8.10)
96468995 Получить порядок приложений в графическом интерфейсе - Спросите Ubuntu - Mozilla Firefox
98568913 Ген, название 1 — LibreOffice Writer
98566678 Петух Иаков 2021-2022.ods - LibreOffice Calc
94371847 Тиликс: jacob@jacob-ZN220IC-K:~
где первое — самое последнее окно, потому что я перевернул список.
Обратите внимание, что ГДК имеет аналогичный метод.