awesome-wm - 客户端在启动时没有名称/类

标签 awesome-wm

我正在尝试在特定标签上启动应用程序 (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/

相关文章:

Lua - 需要回退/错误处理

lua - 我如何才能在 Awesome wm 3.5 版中只有任务列表中的应用程序图标?

linux - AwesomeWM 壁纸更改

awesome-wm - 如何在awesome wm中检索当前标签名称?

linux - 网络管理器调度程序脚本无法重新启动很棒的 wm

zenity - 真棒 wm : pop yes/no dialog when killing a window

linux - 在 AwesomeWM 的 Chrome 窗口之间移动撕下标签

c++ - 样本 SDL 程序给出一个空窗口

linux - 真棒 WM : terminal window doesn't take full space

lua - 如何知道客户是否在 Awesome WM 中被杀死