我想创建一个devilspie
(具有类似 Lisp 语法的规则,但是,解决方案也devilspie2
同样好)与 Spotify 音乐流应用程序的窗口相匹配的规则。具体来说,我想将其_GTK_THEME_VARIANT
属性设置dark
为使其标题栏的颜色与其主题的其余部分相匹配。
目前,我正在使用
(is (window_class) "Spotify")
作为条件,如果我在 Spotify 窗口已经打开时启动 Devilspie,似乎效果很好。但是,如果我在 devispie 已经运行时启动 Spotify,则我的规则不匹配。 Spotify 似乎仅window_class
在创建窗口后才设置它,因此匹配在创建事件上失败。如果我使用(application_name)
而不是,也会发生同样的事情(window_class)
。我可以很好地匹配其他窗口的创建(window_class)
。
有没有办法制定一个规则,可以在应用程序启动时匹配 Spotify 窗口?
答案1
我最近注意到
(is (application_name) "Untitled window")
与 Spotify 启动时匹配。我没有注意到这个查询与其他窗口匹配。值得注意的是,它甚至与其他 Electron 应用程序(例如 Slack 桌面客户端)不匹配。
在控制台上运行的 Devilspie 会在检测到窗口时打印窗口的window_name
、application_name
和window_class
,因此可以在窗口打开时获取有关窗口的信息。
Spotify 似乎将其application_name
和设置windows_class
为Spotify
稍后,因此在已打开的窗口上使用获得的值xprop
与窗口打开时由 Devilspie 检测到的值不匹配。