我正在尝试在特定标签上启动应用程序 (Spotify)。规则未应用,现在我通过在“管理”信号的通知中打印类来检查客户端类。这会导致一个空通知。
client.connect_signal("manage", function (c, startup)
naughty.notify({title=c.class})
end)
当我重新启动 Awesome 时,它会打印客户端类,那么为什么在客户端最初启动时它不起作用?
使用 xprop,它还打印类:
WM_CLASS(STRING) = "spotify", "Spotify"
最佳答案
听起来像是 Spotify 中的一个错误(我认为我之前听说过这个)。我猜想 Spotify 不会遵循 ICCCM,并且仅在使其窗口可见之后而不是之前设置其 WM_CLASS
属性。
我担心除了向 Spotify 开发人员提示以修复他们的问题之外,你对此无能为力。
您可以通过在 manage
信号中启动一个计时器来解决此问题,该计时器会检查窗口是否会在短时间内变为 Spotify。或者,您可以执行类似的操作 client.connect_signal("property::class", function(c) if c.class == "Spotify"then print("This is now a Spotify window") end end)
对窗口类的更改使用react(当然,您希望对 Spotify 的窗口做一些比打印它们更有用的事情)。
(根据 ICCCM,窗口在可见时不允许更改其类,但谁关心标准......)
关于awesome-wm - 客户端在启动时没有名称/类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250540/