几天前我不小心弄坏了我的笔记本电脑显示屏,屏幕右侧已损坏,但左侧大部分都可以使用。我做了一些研究,试图找到一种方法来修改屏幕尺寸以适应该区域而不会造成损坏,然后我找到了 xrandr。
我找到了下一个 .sh 存档,但我找不到将屏幕放到左侧的方法,既不修改 --transform 参数也不修改 --fb 命令。
#!/bin/bash
#change these 4 variables accordingly
ORIG_X=1280
ORIG_Y=800
NEW_X=1160
NEW_Y=800
###
X_DIFF=$(($NEW_X - $ORIG_X))
Y_DIFF=$(($NEW_Y - $ORIG_Y))
ORIG_RES="$ORIG_X"x"$ORIG_Y"
NEW_RES="$NEW_X"x"$NEW_Y"
ACTIVEOUTPUT=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-z0-9]\+\) connected.*/\1/")
MODELINE=$(cvt $NEW_X $NEW_Y | grep Modeline | cut -d' ' -f3-)
xrandr --newmode $NEW_RES $MODELINE
xrandr --addmode $ACTIVEOUTPUT $NEW_RES
xrandr --output $ACTIVEOUTPUT --fb $NEW_RES --panning $NEW_RES --mode $NEW_RES
xrandr --fb $NEW_RES --output $ACTIVEOUTPUT --mode $ORIG_RES --transform 1,0,$X_DIFF,0,1,$Y_DIFF,0,0,1
我还尝试在没有运行下一行的 .sh 存档的情况下执行此操作:
xrandr --output LVDS-1 --fb 800x768 --mode 800x768 --transform 1,0,566,0,1,0,0,0,1
屏幕占据了我想要的位置,但运行该命令后,屏幕左侧出现黑色边框,我无法将其删除。
知道这里出了什么问题吗?
只需使用
xrandr --fb
(no--mode
,--transform
, 不管) 设置屏幕尺寸。xrandr
会抱怨屏幕尺寸太小,但仍然会应用设置。例子:
那可能应该是警告而不是错误;在某些情况下,将屏幕尺寸设置为小于实际显示器的尺寸是非常有意义的。
更新:
启用多头的窗口管理器通过 Xrandr(3) 和 Xinerama(3) 扩展获取有关屏幕的信息,并且不会将它们的尺寸限制在根窗口矩形内。
一个临时的解决方法是阻止他们通过hack使用
Xrandr
andXinerama
扩展。LD_PRELOAD
这可以通过将虚拟函数转换为修剪返回的矩形的包装器来改进。mate
这在带有桌面环境和lightdm
显示gdm3
管理器的 vanilla debian 9.5 上对我有用:然后,从会话菜单中
lightdm
选择“MATE”,并作为登录用户:plasma
尽管使用orgnome3
/gnome-shell
/但我无法让它工作mutter
。这是我对该脚本的修改版本(在其他地方找到了 KDE 更改)
SDDM:要在 sddm 登录屏幕上生效,请在每个 xrandr 行前面放置一个 echo,然后将生成的 xrandr 命令复制到 sddm 启动中。如果您正在运行 KDE,则需要禁用 KScreen 才能将设置转移到 KDE Plasma 中。
随着您的显示器连接运行...
... 在 /var/log/Xorg.0.log 中查找显示并相应地修改下面的 if grep 行。不要忘记如上所述更改 xrandr 行。添加到您的 /usr/share/sddm/scripts/Xsetup: