Рейтинг:0

Получить порядок приложений на GUI

флаг ru

Есть ли команда для отображения порядка отображения приложений в графическом интерфейсе?

введите описание изображения здесь

user535733 avatar
флаг cn
Вы просите другую версию ALT+TAB?
王柏翔 avatar
флаг ru
Нет, я прошу команду, которая показывает порядок приложений в графическом интерфейсе. Используйте изображение в качестве примера, командные окна находятся поверх графического интерфейса, поэтому порядок равен 1.
Jacob Vlijm avatar
флаг by
Не могли бы вы объяснить прецедент?
vanadium avatar
флаг cn
Может быть невозможно, если ваш оконный менеджер явно не предоставляет способ запроса этого: см. https://stackoverflow.com/questions/37214093/get-window-list-sorted-by-most-recent-access-bash
Jacob Vlijm avatar
флаг by
Кстати, какой у вас оконный менеджер? Вэйланд? Муттер?
Jacob Vlijm avatar
флаг by
Привет çæç¿ любопытно, если а) это то, что вы имеете в виду, и б) если вам нужна помощь?
Рейтинг:0
флаг by

Глядя на ваш скриншот, я предполагаю, что вы ищете способ добиться этого в 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:~

где первое — самое последнее окно, потому что я перевернул список.

Обратите внимание, что ГДК имеет аналогичный метод.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.