luakit + awesome wm: заставить работать полноэкранный режим YouTube

luakit + awesome wm: заставить работать полноэкранный режим YouTube

Я использую Arch Linux на своем компьютере. Я использую потрясающий оконный менеджер, который представляет собой тайловый WM, но также позволяет использовать плавающие окна.

TheArchWiki'sПотрясающийвходговорит мне, что нужно добавить следующее в мой awesome rc.lua, чтобы сделать полноэкранный режим YouTube плавающим по умолчанию:

{ rule = { instance = "plugin-container" },
  properties = { floating = true } },

Но это, похоже, не работает. Я попробовал правило, которое они предложили для chromiumбраузера, и это сработало, что заставляет меня также верить, что подход правильный.

Я предполагаю, что это "plugin-container"неверный спецификатор для браузера, который я использую:luakit.

Итак, вот вопрос: какой правильный instanceспецификатор позволит luakitвидео YouTube распознаваться правилами awesome?

решение1

Это немного сложно:

Вы правы, "plugin-container"очень похоже на Firefox.

К сожалению, вы не сможете отличить недавно созданный yt-client, "instance"поскольку это просто пустая строка, которая соответствует большему количеству клиентов, чем вам нужно.

Я нашел другой способ: "class"свойство этого клиента "Luakit"вместо "luakit"для обычных luakit-клиентов. Так что соответствующее правило может выглядеть так:

{ rule = { class = "Luakit" },
   properties = { floating = true } },

Однако в будущем это различие, по всей вероятности, изменится.

Вы можете узнать больше о свойствах клиентов, добавив следующий код в свойrc.lua

mytimer=timer{timeout=2}
mytimer:add_signal("timeout",
        function () for i,c in ipairs(client.get(mouse.screen)) do
                        if c:tags()[mouse.screen]== awful.tag.selected(mouse.screen) then
                                naughty.notify({title=c.class,text=c.role})
                                naughty.notify({title=c.class,text=c.instance})
                                end
                    end
        end)
mytimer:start()

решение2

Начиная с Awesome 3.5, add_signal()функция устарела и заменена функцией connect_signal()(см.Потрясающе 3.4 до 3.5 - Сигналы).

Это небольшое изменение кода @Tyrannodogg будет работать:

mytimer=timer{timeout=2}
mytimer:connect_signal("timeout",
    function () for i,c in ipairs(client.get(mouse.screen)) do
        if c:tags()[mouse.screen] == awful.tag.selected(mouse.screen) then
            naughty.notify({title=c.class,text=c.role})
            naughty.notify({title=c.class,text=c.instance})
        end
    end
end)
mytimer:start()

Связанный контент