Вопрос Существует ли общее решение для реактивации окна, которое было «сведено к минимуму в лоток»?


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

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

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

Я пробовал функцию «windowmap» и «windowmove 0 0», но на самом деле ничего не меняет.

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


2
2017-09-04 18:37


происхождения


Что произойдет, если вы снова запустите Spotify после минимизации в лоток? Некоторые приложения снова открывают окно, а не запускают новый. Возможно, Spotify тоже. - muru
Я столкнулся с той же проблемой, когда написал аналогичную скрипт Некоторое время назад. Не удалось найти общее решение (вызов исполняемого файла, как указано в @muru, работает для нескольких приложений). Хотелось бы посмотреть, есть ли способ сделать это. - Glutanimate
Хороший звонок, муру. Я попробовал это несколько недель назад, и уже открытое окно Spotify снова снова активировалось снова, но с большой ошибкой в ​​верхней части экрана и, кроме того, кнопки мультимедиа, которые я настроил, не работают. НО это стоит сказать, что теперь, когда я пытаюсь это сделать, ошибка по-прежнему отображается, но мои медиа-кнопки все еще работают. Поэтому я предполагаю, что это приемлемо для меня. Однако я собираюсь пересмотреть этот вопрос, чтобы просить об общем решении. - Offlein
Просто мысль, но это (скрытое?) Окно, указанное в wmctrl -l вывод? Если да, то что он говорит о размере / местоположении? Если у вас есть id, что значит xprop -id <id> скажем, о окне? О, я вижу, что вопрос старый .... Это все еще актуально? - Jacob Vlijm


ответы:


Например, в сценарии удаленного управления мне удалось «поднять» Clementine из лотка через 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

1
2018-03-29 09:19