调整 Xvfb 显示的大小

26

简单问题:是否有一种方法可以调整Xvfb显示器的大小?

我尝试使用RandR,但似乎Xvfb不支持RandR扩展。有其他方法可以调整屏幕大小吗?

谢谢您的帮助!


2个回答

28

您可以使用server-args命令行参数来指定创建的虚拟帧缓冲区的自定义分辨率,但这不会改变现有虚拟帧缓冲区的分辨率:

xvfb-run --server-args="-screen 0, 1024x768x24" ...

1
如何更改现有的虚拟帧缓冲区? - Jezor
我不确定那个。 - edigu
@totaam 哦,是的,它已被标记为离题。简而言之,运行 Xvfb :1 -screen 0 100x100x16 -fbdir /tmp,然后您将在 /tmp 中拥有 Xvfb_screen0 二进制文件。但是,这个文件与 /dev/fb0 的工作方式不同,运行 sudo fbset -fb /tmp/Xvfb_screen0 -xres 500 -yres 500 会出现错误 ioctl FBIOGET_VSCREENINFO: Inappropriate ioctl for device。问题是:“有没有办法更改运行中的 Xvfb 服务器分辨率?” - Jezor
1
@Jezor,我上面的回答就是这样做的。不要在vfb上使用fbset,你必须使用xrandr。 - totaam

6
大多数发行版现在都附带了支持randr的Xvfb版本。该代码于2015年底提交,详情请参见vfb: add randr support (v2)
要调整大小,您首先需要定义一个新模式(您可以使用诸如gtf之类的工具获取模式线定义值),将其添加到虚拟输出中,然后您就可以切换到该模式。
例如,对于1280x1024:
xrandr --newmode "1280x1024"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode screen 1280x1024
xrandr -s 1280x1024

嘿@totaam - 抱歉打扰你,但我正在尝试按照这些步骤操作,但是xrandr --newmode似乎没有任何效果(没有输出/错误,并且没有添加模式)。 你知道有什么方法可以从--newmode命令中获得更详细的输出吗? 如果您感兴趣,可以在此处获取更多详细信息:https://gitlab.freedesktop.org/xorg/app/xrandr/-/issues/67 - Dave W.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接