【发布时间】:2022-01-20 06:57:18
【问题描述】:
awesomewm 能否强制 Firefox 中的 YouTube 或 VLC 媒体播放器中的全屏视频缩放并填充与正在播放应用程序的窗口相同的边界?即,当我在 YouTube 视频上单击全屏时,如果我在 2 x 2 布局的右上象限运行 Firefox,视频会缩放到 Firefox 所在的象限,隐藏 Firefox 的 UI,但保持其他窗口打开?
【问题讨论】:
标签: awesome-wm
awesomewm 能否强制 Firefox 中的 YouTube 或 VLC 媒体播放器中的全屏视频缩放并填充与正在播放应用程序的窗口相同的边界?即,当我在 YouTube 视频上单击全屏时,如果我在 2 x 2 布局的右上象限运行 Firefox,视频会缩放到 Firefox 所在的象限,隐藏 Firefox 的 UI,但保持其他窗口打开?
【问题讨论】:
标签: awesome-wm
是的,它可以,但是默认的 API 会努力阻止双方的攻击。至少可以说是不平凡的。
Youtube 使用 javascript 检查鼠标是否移出窗口,并将自动退出全屏模式以防止这种情况发生。因此,您需要使用 lua 将光标移动到另一个位置,而不会碰到窗口的一侧。
现在,回到最初的问题。首先,您需要断开客户端request::geometry 信号与awful.ehwm.merge_maximization 和awful.ewmh.geometry 的连接,以“破坏”全屏支持。然后您需要围绕这些函数实现自己的包装器并将其再次连接到request::geometry。当这些包装器在客户端名称中看到 VLC 或匹配 youtube 时,他们需要“什么都不做”。否则,它们会调用原始函数。
现在你需要替换/monkey-patch awful.client.tiled 来包含一些全屏客户端。
在那之后(并且您将创建的所有错误都已修复),它应该“工作”。
在某个时候,我计划向客户端 API 添加一个 claim_fullscreen 属性,但这在我的优先级列表中并不是很高。
【讨论】: