自从在我的笔记本电脑上升级到 Ubuntu 13.10(实际上是升级到 Xubuntu,因为我切换到了 XFCE)后,我在使用 LightDM 时遇到了问题:
我使用两个外接显示器(一个 24 英寸,一个 22 英寸)连接到我的笔记本电脑扩展坞。安装 NVIDIA 驱动程序 319 后,我使用 nvidia-settings 将两个显示器配置为使用 TwinView 和正确的原始分辨率。我还将此配置存储在 /etc/X11/xorg.conf 中。现在,当我登录时,我的显示设置已正确“加载”。
但是,LightDM 似乎忽略了我的设置:每次登录屏幕都以克隆模式显示,而不是 TwinView,并且 24 英寸显示屏的背景图像尺寸不合适(太小)。
我怎样才能解决这个问题?
更新:
我刚刚注意到 LightDM 使用了错误的显示设置(即克隆模式)仅当笔记本电脑盖在扩展坞中关闭时。当我保持笔记本电脑盖打开时(即使笔记本电脑显示屏已禁用),LightDM 也能正常运行并使用我为 X 会话配置的精确显示设置。
解决方案类似 问题这涉及在脚本中使用 xrandr 并使用选项“display-setup-script”或 /etc/lightdm/lightdm.conf 中的类似选项运行它不起作用:我的脚本(见下文)已执行,但分辨率不会改变。在 X 会话中手动执行时,该脚本运行正常。
可能是 NVIDIA 驱动程序覆盖/强制执行了某些操作?我已经尝试过 NVIDIA 驱动程序 304、319 和 331,但没有成功。使用 13.04 时不会出现问题,我甚至不需要 LightDM 脚本。
我当前的脚本(/usr/share/lightdmxrandr.sh):
#!/bin/bash
extscreens=$(xrandr -q | grep -c "DP-[02] connected")
if [[ $extscreens == 2 ]]; then
xrandr --output DP-2 --primary --mode 1920x1200 \
--output DP-0 --mode 1680x1050 --right-of DP-2 --output LVDS-0 --off
else
xrandr --output LVDS-0 --mode 1280x800 --output DP-2 --off --output DP-2 --off
fi
exit 0
/etc/lightdm/lightdm.conf:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/usr/share/lightdmxrandr.sh
session-setup-script=/usr/share/lightdmxrandr.sh
greeter-setup-script=/usr/share/lightdmxrandr.sh
解决方案:
从 Unity 切换到 XFCE 后,解决方案如下:
为 XFCE 安装默认的 LightDM 欢迎程序:
apt-get install lightdm-gtk-greeter xubuntu-default-settings
更改/etc/lightdm/lightdm.conf中的相应行:
前:
[SeatDefaults] greeter-session=unity-greeter ...
后:
[SeatDefaults] greeter-session=lightdm-gtk-greeter ...
现在,LightDM 登录屏幕上的所有显示器都已正确配置。
答案1
我用
session-cleanup-script=path-to-script
启动我的脚本,它对我来说工作正常...lightdm 屏幕显示正确的分辨率并且显示器位于正确的一侧。
请记住我使用类似
nvidia-settings --assign CurrentMetaMode="HDMI-1: 1280x720_60 +1920+0 {ViewPortIn=1280x720, viewportout=1240x697+20+11}, DVI-D-0: nvidia-auto-select +0+0"
而不是 xrandr,因为我还需要纠正电视的过扫描,因为它没有这方面的选项。
PS 13.10 将文件的位置更改为子目录(从此博客中读到)
http://blogs.bu.edu/mhirsch/2013/10/ubuntu-13-10-removing-guest-access-and-removing-remote-login/