キーボードショートカットがまだ開いていない場合は、Spotifyアプリケーションを実行して、キーボードショートカットに応答するスクリプトを作成しました。
Spotifyがすでに開いている場合、スクリプトはxdotoolを使用してウィンドウをアクティブにします(ウィンドウを「前面に」移動します)。これらはそれ自体で非常にうまく機能しますが、1つの問題があります。 Spotifyウィンドウを「閉じる」と(たとえば、隅にあるXを押すと)、ウィンドウは完全に消え、システムトレイからのみアクセスできます。 Spotifyはまだ実行中ですが、xdotoolはウィンドウをアクティブ化できません-何もしません。
この場合、どうすれば「閉じた」ウィンドウを前面に表示できますか? Spotifyの書き方が原因でそれは不可能ですか? xdotoolは、ウィンドウが閉じている場合でも、実際にはウィンドウのIDを正しく返します。
「windowmap」関数と「windowmove00」を試しましたが、どちらも実際には変更に影響しません。
編集:ユーザーmuruは、私の場合、Spotifyを再実行することを提案しています。これは、以前は機能していませんでしたが、実際にはほとんど機能することになります。これは、Spotifyが再度開かれる処理をどのように処理するかによって異なります。一般的な解決策があれば聞いてみたいです。
たとえば、リモートコントロールスクリプトでは、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