我的显示器部分坏了。如何使用xrandr或任何类似工具减少可视空间?

Modified on: Sat, 30 Jun 2018 08:58:30 +0800

我的辅助显示器在屏幕的前1/3处部分断开,因此我想添加黑条,并在下图中显示。
最重要的是它现在的一切。底部是我想要实现的目标。其中列出的分辨率是每个屏幕的最大值。

这是第二个屏幕的xrandr输出:

VGA1 connected 1920x1080+1366+12 (normal left inverted right x axis y axis) 890mm x 500mm
1920x1080     60.00*+
1600x1200     60.00  
1680x1050     59.95  
1280x1024     75.02    60.02  
1440x900      74.98    59.89  
1280x960      60.00  
1360x768      60.02  
1280x800      59.81  
1152x864      75.00  
1024x768      75.08    70.07    60.00  
832x624       74.55  
800x600       72.19    75.00    60.32  
640x480       75.00    72.81    66.67    60.00  
720x400       70.08 

作者:Noam M,Maccer

最佳答案

可能的解决方法:

使用覆盖受损区域的空面板使用剩余空间强制窗户。例如,可以很好地配置xfce4-panel。这取决于您的桌面环境如何工作。我认为Xfce和LXDE会正常工作,Gnome会出问题。
这对覆盖面板的全屏应用程序也没有帮助,例如firefox + F11或全屏VLC。

全屏应用程序的解决方法:使用所需的屏幕大小启动Xephyr,对其进行定位并在其中启动应用程序。使用脚本和'xdotool`自动执行此操作:

Xephyr :1 -screen 1500x800x24 &
xdotool search --name Xephyr windowmove 0 437

使用DISPLAY=:1 firefox在Xephyr窗口中启动应用程序。 Xephyr不支持硬件加速,但virtualgl可以提供帮助。


最佳解决方法:

westonXwayland一起使用。它支持硬件加速和全屏应用。

在启动时使用非常轻量级的窗口管理器(如openbox)(或者甚至更好,一个没有窗口装饰的窗口管理器,如evilwm)。它仅作为背景环境,威斯顿将覆盖它。

像这样创建一个自定义myweston.ini文件(参见man weston.ini):

[core] shell=desktop-shell.so idle-time=0 [shell] panel-location=none locking=false [output] name=X1 mode=1366x768 [output] name=X2 mode=1500x768

创建一个像这样的脚本来启动westw中的weston和Weston的Xwayland(自定义2个weston窗口的位置)。最后,启动您想要的桌面环境:

[core]
shell=desktop-shell.so
idle-time=0

[shell]
panel-location=none
locking=false

[output]
name=X1
mode=1366x768

[output]
name=X2
mode=1500x768

上面的启动脚本没有为X客户端设置cookie身份验证。相反,您也可以使用x11docker来进行cookie身份验证:

# start weston with custom config and two output windows
weston --socket=wayland-1 --config=$HOME/myweston.ini --output-count=2 >$HOME/weston.log 2>&1 &
sleep 1 # wait until weston is ready

# get window id's from logfile and move windows at target (xwininfo could give id's, too)
xdotool windowmove 0x$(printf '%x\n' $(cat $HOME/weston.log | grep 'window id' | head -n1 | rev | cut -d' ' -f1 | rev))    0 0
xdotool windowmove 0x$(printf '%x\n' $(cat $HOME/weston.log | grep 'window id' | tail -n1 | rev | cut -d' ' -f1 | rev))    1369 400

# start X server Xwayland in weston
WAYLAND_DISPLAY=wayland-1 Xwayland :1 &
sleep 1 # wait until Xwayland is ready

# start your desired desktop environment
DISPLAY=:1 startlxde


Xwayland作为韦斯顿的客户“窗口”出现。不幸的是,由于Weston或Xwayland中的一个错误,它并不总是位于0:0的位置。您可以使用[META] +鼠标左键将Xwayland移动到所需位置。
我写了一篇错误报告,但却得到了反响。

作者:,mviereck

相关问答

添加新评论