将视频输出限制到显示器的一部分并将其余部分留空

Tom*_*mSW 5 video linux xrandr

本周我必须使用的视频投影仪投影的图像对于其屏幕来说太大
了,并且会溢出到每一面。

修复物理设置目前不可能或至少不太可能:唯一的解决方案是仔细调整窗口的大小和位置,以便它们显示在屏幕的可见部分 - 使用全屏模式已过时。

有没有办法通过软件解决这个问题,例如使用xrandr

# xrandr doesn't have a padding option...
xrandr --output VGA1 --mode 1360x768 --left-of LVDS1 --padding 200
Run Code Online (Sandbox Code Playgroud)

aar*_*ren 7

我的屏幕坏了,只有左上角可用。我使用 Openbox 作为我的窗口管理器(通过 Crunchbang)。我在开始时有这个.config/openbox/autostart(但我想你可以将它添加到 X 启动后执行的任何内容中):

xrandr --newmode "1016x670_59.90"  54.87  1016 1064 1168 1320  670 671 674 694  -HSync +Vsync
xrandr --addmode LVDS1 1016x670_59.90
xrandr --output LVDS1 --fb 1016x670 --panning 1016x670 --mode 1016x670_59.90
xrandr --fb 1016x670 --output LVDS1 --mode 1280x800
Run Code Online (Sandbox Code Playgroud)

这将我的屏幕减少到使用左上角的 1016x670 框。我不知道为什么我必须创建新模式并再次关闭它,但这对我有用。

我从gtf以下位置获得了模型行:

 gtf 1016 670 59.9
Run Code Online (Sandbox Code Playgroud)

在您的情况下,我认为您的目标是 1160x568(周围填充 200 像素)。

获取模式行:

gtf 1160 568 59.9
>> # 1160x568 @ 59.90 Hz (GTF) hsync: 35.22 kHz; pclk: 52.13 MHz
>> Modeline "1160x568_59.90"  52.13  1160 1200 1320 1480  568 569 572 588  -HSync +Vsync
Run Code Online (Sandbox Code Playgroud)

然后

xrandr --newmode "1160x568_59.90"  52.13  1160 1200 1320 1480  568 569 572 588  -HSync +Vsync
xrandr --addmode VGA 1160x568_59.90
xrandr --output VGA --fb 1160x568 --panning 1160x568 --mode 1160x568_59.90
xrandr --fb 1160x568 --output VGA --mode 1280x800
Run Code Online (Sandbox Code Playgroud)


Tom*_*mSW 4

我能想到的最好的办法是

  • 使用 XMonad 和虚拟机:调整 VM 窗口大小以适合显示器的可见区域(没有窗口装饰妨碍),然后在 VM 中全屏显示演示文稿

  • 使用 xrandr 的fb选项将总屏幕尺寸限制为可见区域,并使用转换选项将其移动到正确的位置。像这样其他显示器就没什么用了。

    xrandr --fb 1000x600 --output VGA1 --mode 1360x768 --transform 1,0,-150,0,1,-80,0,0,1