web-dev-qa-db-ja.com

「トレイに最小化」されたウィンドウを再アクティブ化するための一般的な解決策はありますか?

キーボードショートカットがまだ開いていない場合は、Spotifyアプリケーションを実行して、キーボードショートカットに応答するスクリプトを作成しました。

Spotifyがすでに開いている場合、スクリプトはxdotoolを使用してウィンドウをアクティブにします(ウィンドウを「前面に」移動します)。これらはそれ自体で非常にうまく機能しますが、1つの問題があります。 Spotifyウィンドウを「閉じる」と(たとえば、隅にあるXを押すと)、ウィンドウは完全に消え、システムトレイからのみアクセスできます。 Spotifyはまだ実行中ですが、xdotoolはウィンドウをアクティブ化できません-何もしません。

この場合、どうすれば「閉じた」ウィンドウを前面に表示できますか? Spotifyの書き方が原因でそれは不可能ですか? xdotoolは、ウィンドウが閉じている場合でも、実際にはウィンドウのIDを正しく返します。

「windowmap」関数と「windowmove00」を試しましたが、どちらも実際には変更に影響しません。

編集:ユーザーmuruは、私の場合、Spotifyを再実行することを提案しています。これは、以前は機能していませんでしたが、実際にはほとんど機能することになります。これは、Spotifyが再度開かれる処理をどのように処理するかによって異なります。一般的な解決策があれば聞いてみたいです。

2
Offlein

たとえば、リモートコントロールスクリプトでは、D-Busを介してトレイからクレメンティーンを「上げる」ことができました。

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

これは、D-Busプロトコルをサポートしているため、Spotifyでも同様に機能するはずです。対応するコマンドは次のようになります。

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Raise
1
NetAndif