私は自分のマシンで Arch Linux を実行しています。タイル型のウィンドウ マネージャでありながら、フローティング ウィンドウも使用できる素晴らしいウィンドウ マネージャを使用しています。
のArchWikiの素晴らしいエントリrc.lua
YouTube をデフォルトでフルスクリーン フローティングにするには、次の内容を awesome に記述するように指示されています。
{ rule = { instance = "plugin-container" },
properties = { floating = true } },
しかし、これはうまく機能していないようです。chromium
ブラウザに提案されたルールを試してみたところ、うまくいきました。このことから、このアプローチが正しいと信じるようになりました。
"plugin-container"
は私が使用しているブラウザの正しい指定子ではないと思われます:luakit
。
では、質問です。YouTube動画をルールに従って認識させるinstance
ための正しい指定子は何でしょうか?luakit
awesome
答え1
ちょっと難しいですね:
そうですね、"plugin-container"
Firefox によく似ていますね。
"instance"
残念ながら、新しく生成された yt-clientは単なる空の文字列であるため、必要な数よりも多くのクライアントに一致するため、区別できません。
私は別の方法を見つけました:"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()