Есть ли общее решение для повторной активации окна, которое было "свернуто в трей"?

Я написал скрипт, который отвечает на сочетание клавиш, если оно еще не открыто, запустите приложение Spotify.

Если Spotify уже открыт, сценарий использует xdotool для активации окна (перенести его "на передний план"). Они работают очень хорошо сами по себе - но для одной проблемы. Если вы "закроете" окно Spotify (например, нажав X в углу), оно полностью исчезнет и будет доступно только через системный трей. Spotify все еще работает, но xdotool не может активировать окно - он ничего не делает.

Как я могу вывести "закрытое" окно на передний план в этом случае? Это просто невозможно из-за того, как написан Spotify? xdotool фактически вернет идентификатор окна правильно, даже когда оно закрыто.

Я пробовал функцию "windowmap" и "windowmove 0 0", но ни один из них не оказывает никакого влияния, на самом деле.

РЕДАКТИРОВАТЬ: Пользователь Муру предлагает повторно выполнить Spotify, в моем случае, который на самом деле заканчивается в основном работает, хотя раньше это не так. Это зависит от того, как Spotify обрабатывает повторное открытие. Я хотел бы услышать об общем решении, если оно существует.

1 ответ

Решение

Например, в сценарии удаленного управления мне удалось "поднять" Клементину из лотка через D-Bus:

qdbus org.mpris.clementine /org/mpris/MediaPlayer2 Raise

Это должно работать аналогично Spotify, так как он поддерживает протокол D-Bus. Соответствующая команда будет:

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Raise
Другие вопросы по тегам