Проблема:
Стандартные решения на базе 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
Среда:
- ОС: CachyOS (На основе Arch)
- Рабочий стол: KDE Plasma Версия: 6.3.5
- Python 3.13.3
Как я могу надежно получить заголовок активного окна в Plasma 6/Wayland (например, с помощью dbus-send или библиотеки Python)?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ython-dbus
Мобильная версия