Firefox の便利機能の一つに Picture-in-Picture(PinP)機能があります。これを使うと YouTube などの動画をポップアップさせて動画プレイヤーだけを一つのウィンドウとして扱えるので、ながらプログラミングに便利です。
ところが Hyprland でこの機能を使うと、PinP のウィンドウが何も操作していないのに勝手に最大化してしまうことがあります。ここでいう「最大化」は全画面表示とは異なり、画面全体を覆うわけではなくウィンドウ表示のまま他のウィンドウよりも全面に出て最大化表示になるものです。適当に操作すると元のウィンドウ表示に戻るのですが、再生中に何度も画面を覆って作業が中断されるので大変不便です。
以前の Hyprland では以下のようにするとこの最大化を抑制できていました:
windowrule = suppressevent maximize, class:(.*)
しかし、最近の Hyprland ではこの方法は使えなくなった?ようです(深掘りしていません)。そのためコメントアウトしてしばらく過ごしていたのですが、耐えられなくなったので代替の方法を探しました。
最近 Hyprland の設定を Lua に書き換えたので Lua でどのように書くべきなのかを調べたところ、灯台下暗しで、Hyprland の example config の中にまさにそういう設定がありました:
hl.window_rule({
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
ということでこの設定を試してみています。今のところちゃんと動いているようです。