2016-08-31 4 views
1

Я пытаюсь запустить приложение (Spotify) по определенному тегу. Правила не применяются, и теперь я проверяю класс клиента, печатая класс в уведомлении в «управляющем» сигнале. Это приводит к пустым уведомлениям.Клиент не имеет имени/класса при запуске

client.connect_signal("manage", function (c, startup) 
    naughty.notify({title=c.class}) 
end) 

Когда я перезагружать удивительным, он делает печать класса клиента, так почему это не работает, когда клиент изначально начал?

Использование xprop, он также печатает класс: WM_CLASS(STRING) = "spotify", "Spotify"

+0

Другие расследующие это будет интересно в этой дискуссии на GitHub: https://github.com/awesomeWM/awesome/issues/977 –

ответ

1

Похоже, ошибка в Spotify (и я думаю, что я слышал об этом один и раньше). Я бы предположил, что Spotify не следует ICCCM и только устанавливает свой WM_CLASS свойство после того, как оно сделало его окно видимым, а не раньше.

Я боюсь, что вы не можете много сделать, кроме как жаловаться Spotify разработчикам, чтобы исправить их вещи.

Вы можете обойти это, запустив таймер в сигнале manage, который проверяет, окажется ли окно пятно на короткое время позже. В качестве альтернативы вы можете сделать что-то вроде client.connect_signal("property::class", function(c) if c.class == "Spotify" then print("This is now a spotify window") end end), чтобы реагировать на изменение класса окна (конечно, вы хотели бы сделать что-то более полезное для окон Spotify, чем их печатать). (В соответствии с ICCCM, окно не может изменять свой класс, пока оно видно, но кто заботится о стандартах ...)

+0

прослушивающему сигнал изменения класса позволяет мне обойти проблему, спасибо. – siebz0r

0

У меня была аналогичная проблема с клиентом почтовой почты. Проверяя его с помощью xprop, он показывает

WM_CLASS(STRING) = "claws-mail", "Claws-mail" 

но удивительный просто не применял к нему правила. Трюк дает удивительный-WM оба этих имен классов в разделе правил, предоставляя набор символов на выбор:

rule = {class = "[Cc]laws%-mail"} 

Я надеюсь, что это работает для вашего приложения Spotify тоже.

Для дальнейшего чтения о шаблонах в Lua я предлагаю это: https://www.lua.org/pil/20.2.html