Как получить заголовок активного окна в KDE Plasma 6 (Wayland) через Python/DBus?Python

Программы на Python
Ответить
Anonymous
 Как получить заголовок активного окна в KDE Plasma 6 (Wayland) через Python/DBus?

Сообщение Anonymous »

Я работаю над проектом преобразования речи в текст (Python) в CachyOS (Arch Linux), используя KDE Plasma 6 (Wayland). Мне нужно получить заголовок активного окна для контекстно-зависимой обработки входных данных.
Проблема:
Стандартные решения на базе X11, такие как xdotool или xprop, не работают для собственных окон Wayland, выдавая ошибки BadWindow:

Код: Выделить всё

XGetWindowProperty\[\_NET_ACTIVE_WINDOW\] failed (code=1)

xdo_get_active_window reported an error

X Error of failed request: BadWindow (invalid Window parameter)

Что я исследовал:
Я проверил несколько существующих решений на StackOverflow, но они либо устарели, либо специфичны для X11:
  • Как получить список всех открытых окон в KDE из CLI: предлагает qdbus и wmctrl. Однако qdbus не установлен в моей системе по умолчанию, а wmctrl не поддерживает собственные окна Wayland.
  • Как показать заголовок окна приложений с графическим интерфейсом в терминале в Linux: в первую очередь обсуждаются xdotool и xtitle, которые основаны на X11 и не работают в моем сеансе Wayland.
  • Обнаружение активных окон в моей системе Python с KDE: в этом ответе 13-летней давности предлагается PyKDE4 (устаревший) или qdbus. В Plasma 6 было перемещено множество интерфейсов, и эти устаревшие методы больше не работают.
Моя попытка:
Поскольку qdbus отсутствует, я попробовал использовать dbus-send:

Код: Выделить всё

dbus-send --session --print-reply --dest=org.kde.KWin /KWin org.kde.KWin.activeWindow

Результат: Ошибка org.freedesktop.DBus.Error.UnknownMethod: нет такого метода «activeWindow» в интерфейсе «org.kde.KWin» по пути к объекту «KWin»
Среда:
  • ОС: CachyOS (На основе Arch)
  • Рабочий стол: KDE Plasma Версия: 6.3.5
  • Python 3.13.3
Вопрос:
Как я могу надежно получить заголовок активного окна в Plasma 6/Wayland (например, с помощью dbus-send или библиотеки Python)?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ython-dbus
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»