我如何才能使 xrandr 定制永久化?

我如何才能使 xrandr 定制永久化?

我曾经编辑 GDM 的启动脚本 (/etc/gdm/Init/Default) 来永久改变我的显示分辨率。

如何在 Ubuntu Oneiric 中使用 LigthDM 来实现这一点?

答案1

修改/etc/lightdm/lightdm.conf添加如下选项:

显示设置脚本>mycustomloginvideo.sh在登录屏幕出现之前 给你打电话会话设置脚本mycustomdesktopvideo.sh>在用户桌面会话开始之前调用你

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh

你可能有 ”arandr“GUI 工具生成上述 sh 脚本,从当前会话的 X 配置中选择参数。

确保您的 shell 脚本是可执行的:

chmod a+x /usr/share/mycustom*video.sh

xrandr您可以在终端中运行它来测试它是否有效(即您的命令中没有任何拼写错误或配置错误):

/usr/share/mycustomdesktopvideo.sh

如果登录脚本因任何原因无法工作,您的计算机可能无法完成启动过程并进入登录屏幕。如果桌面脚本失败,您可能在登录后无法看到桌面。如果您正在设置外接显示器,断开连接时这些脚本将失败,并且 X 会话将无法启动。

答案2

我认为您可以将显示模式添加到/etc/X11/xorg.conf

如果您没有xorg.conf,那么您可以使用以下内容作为基础。您需要将条目替换为名称ModelineDriver并将Modes其替换为适合您系统的正确条目。根据您的硬件,您可能需要额外的条目,例如,如果您的系统有多个图形芯片。

Section "Monitor"
    Identifier    "Monitor0"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection "Display"
        Modes       "1280x1024_60.00" "1024x768_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier    "Card0"
    Driver        "nvidia"
EndSection

如果您不知道系统正在使用的视频驱动程序的名称,那么您可能会得到以下名称(如果您有英特尔图形芯片,则驱动程序名称只是“intel”):

lshw -class display | grep "driver"

可以使用以下方法生成模式行cvt

cvt <h-resolution> <v-resolution> [refresh]

答案3

有人发布了另一种解决方法,但我必须说它对我来说不起作用。它可能对你有用。就我而言,它破坏了统一性,我只能移动鼠标光标。应用程序指示器顶部面板看起来是空的,但拔下 LCD 后,我能够删除添加的行,一切都恢复正常。

编辑文件/usr/sbin/lightdm-session

该文件的第一部分现在如下所示:

#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  if [ -f  "$file" ]; then
     echo "Loading profile from $file";
     . "$file"
  fi
done

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00

# Load resources

请注意,Xrandr 设置应更改为与您的设置相匹配。

答案4

我的笔记本电脑也遇到过类似问题,我想补充一些内容。如果您不关心登录分辨率(我不关心),但希望实际工作空间具有正确的分辨率,您可以将显示器信息添加到 LightDM,但在登录之前不要打开全分辨率。

我刚刚在文件中为我的监视器添加了以下脚本:lighdmxrandr

xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00

然后我打电话给/etc/lightdm/lightdm.conf

display-setup-script=/usr/bin/lightdmxrandr

一旦我登录,我就可以在显示器中设置我的显示器,并且它仍然可以工作,即使在我重新登录之后(过去总是给我一个很大的错误)。

相关内容