我正在使用带有 xmonad 的 ubuntu 服务器。我配置了双显示器设置,xrandr
但无法让它在启动时运行。我的.xinitrc
看起来像这样:
# WM
xmonad
# dual monitor
xrandr --output HDMI1 --auto
xrandr --output VGA1 --auto --left-of HDMI1
设置未应用。我该如何处理?
答案1
ilia choly,看看这个解决方案是否更适合您: 如何强制多台显示器正确调整 LightDM 的分辨率?
它涉及编辑 /etc/lightdm/lightdm.conf 以使登录屏幕(在 Ubuntu 12.04 上测试)调用脚本。该文件最初如下所示:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
添加以下行使其在登录之前仍然调用给定的脚本:
display-setup-script=/usr/share/lightdmxrandr.sh
另一行让它在登录后调用给定的脚本:
session-setup-script=/usr/share/lightdmxrandr.sh
在此示例中,lightdmxrandr.sh 脚本用于自动识别屏幕和外接显示器(如果有)的分辨率。以下是我的脚本内容(我对上面的脚本做了一些改动)关联):
#!/bin/bash
# connected external output
XCOM0=`xrandr -q | egrep '(HDMI1|VGA1|DP1) connected' | egrep -o '(HDMI1|VGA1|DP1)'`
# command to set external desktop
XCOM1=`xrandr --output LVDS1 --primary --auto --output $XCOM0 --auto --right-of LVDS1`
# command to set normal desktop
XCOM2=`xrandr --output LVDS1 --primary --auto`
# if the external monitor is connected, then we tell XRANDR to set up an extended desktop
if [ -n "$XCOM0" ] || [ ! "$XCOM0" = "" ]; then echo $XCOM1
# if the external monitor is disconnected, then we tell XRANDR to output only to the laptop screen
else echo $XCOM2
fi
exit 0;
将此文件另存为lightdmxrand.sh 设置为可执行文件,如下所示:
$ sudo chmod +x lightdmxrand.sh
将其移动到 /usr/share/ 目录,如下所示:
$ sudo mv lightdmxrand.sh /usr/share/lightdmxrandr.sh
编辑 /etc/lightdm/lightdm.conf,添加给定的行:
display-setup-script=/usr/share/lightdmxrandr.sh
如果您希望此脚本在登录后也运行,请添加:
session-setup-script=/usr/share/lightdmxrandr.sh
希望对你有帮助!
答案2
试试在&
后面加上一个 ( ) xmonad
。这样它会在后台执行。这样两个xrandr
命令就可以执行了。
# dual monitor
xrandr --output HDMI1 --auto
xrandr --output VGA1 --auto --left-of HDMI1
# WM
xmonad