i3和vmware:如何检测分辨率变化并将当前分辨率设置为新的分辨率变化?

i3和vmware:如何检测分辨率变化并将当前分辨率设置为新的分辨率变化?

我正在使用 vmware 来运行 arch linux。我已经设置了 i3-gaps,并且在使用柠檬条时一切都设置正确,但是,我唯一的问题是柠檬条设置为当前分辨率。当我调整 VMware 大小时,分辨率发生变化,并且条形图不再正确显示。调整 vmware 窗口大小时刷新分辨率的最佳方法是什么?

我使用的是最新的VMware fusion 8.1。目前,我正在使用柠檬条,它通过使用 xrandr -q 并使用 awk 来获取当前分辨率的宽度来查找当前分辨率。

答案1

您可以做的一件事是通过 ie 监视 X11 日志tailf /var/log/Xorg.0.log
我不知道 VMware 如何更改分辨率,但更改时它可能会在日志中记录一条消息,例如:

[ 55152.166] (II) modeset(0): Allocate new frame buffer 6548x2160 stride

该日志通常可由普通用户读取,因此您不需要 root 权限。
如果您使用tailf而不是tail -f,理论上它应该占用更少的资源(请参阅这个答案.)

或者,如果 VMware 使用命令来更改调整大小的分辨率,您可以“劫持”该命令并将其替换为您自己的包装器命令,让它执行您需要执行的操作,然后运行原始命令。
由于我不使用 VMware,我不确定他们是如何处理这个问题的,所以我不知道这是否可行。

相关内容