![Как узнать текущее активное окно в Ubuntu 22.04?](https://rvso.com/image/1072183/%D0%9A%D0%B0%D0%BA%20%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B5%20%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5%20%D0%BE%D0%BA%D0%BD%D0%BE%20%D0%B2%20Ubuntu%2022.04%3F.png)
С момента выхода Ubuntu 22.04 этот вопрос стал нормальным.
Я пишу скрипт оболочки, которому нужно получить имя текущего активного окна, поэтому после поиска инструмента для этого я решил использовать xdotool.
Но когда я запускаю терминал или настройки, xdotool getwindowfocus getwindowname
выдает ошибку:
xdo_get_focused_window_sane failed (code=1)
xdo_focus_window reported an error
Так как мне исправить эту ошибку или как мне получить имя текущего активного окна?
решение1
xdotool
работает только для менеджера отображения Xorg, а не Wayland, а Wayland используется по умолчанию в Ubuntu 22.04. В Wayland нет эквивалентного способа выбора окна с фокусом. Лучшим вариантом, если вам нужна эта функциональность, будетперейти на использование Xorgи тогда метод, который вы использовали, сработает.
Если вы хотите придерживаться Wayland и готовы копать довольно глубоко, чтобы разобраться в этом, вы можете использовать метод вашего оконного менеджера или композитора для открытия окон. Это непереносимо между WM и не во всех ситуациях возможно. Смотритеэтот вопрос о Gnomeгде это вообще невозможно.