我正在尝试编写一个dunstspotify --uri=$(playerctl -p spotify metadata mpris:trackid
/player 交互脚本,以在它被关闭/单击时对 playerctl 元数据进行删除并通过 ) 打开 Spotify 曲目。
如何确保打开现有的 Spotify 窗口而不是全新的窗口?
如果答案需要非常特定于程序的 API 知识,那么请提供处理此问题的实用方法。我特别想在使用i3wm时解决这个问题。
我也对此感到好奇,以增强rofi等应用程序启动器处理应用程序切换的方式,以干预它是否应该打开新窗口或现有窗口(在rofi -modi window
处理有意窗口切换的上下文之外)。
有人建议我使用
dbus-send
从 URI 打开 Spotify,但是我发现特定于 Spotify API 的限制(打开 URI 会重新启动曲目,而不是仅拉出艺术家页面)。这实际上是一个Spotify 错误。总的来说,对于像 i3 这样的 WM,最合适的策略似乎是检查进程是否正在运行,然后根据需要有条件地聚焦窗口或启动应用程序。这就是我所决定的。
在 i3 中,您可以使用 聚焦窗口
i3-msg '[class="Spotify"] focus'
。用于xprop
识别元信息以定位窗口。