linux下xrandr怎么永久生效,如何使xrandr定制永久化?

问题描述

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

如何在Ubuntu Oneiric中使用LigthDM执行此操作?

最佳解决方法

我想你可以将显示模式添加到/etc/X11/xorg.conf。

如果您没有xorg.conf,则可以使用以下内容作为基础。您需要将名称为Modeline,Driver和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图形芯片,驱动程序名称只是”intel”):

lshw -class display | grep "driver"

可以使用cvt生成模型:

cvt [refresh]

次佳解决方法

修改/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会话将无法启动。

第三种解决方法

有人发布了另一个解决方法,但我必须说它对我不起作用。它可能适合你。在我的情况下,它打破了统一,我只能移动我的鼠标光标。应用程序指示器顶部面板看起来是空的,但在拔下我的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设置以匹配您的设置。

第四种方法

我一直试图解决类似的问题一段时间,并找到一个适合我的解决方案,所以希望它会有所帮助……

我有一个旧的向往一个AOA110,我已经打破屏幕太多次,买了一台新的笔记本电脑决定我会尝试把它变成一个HTPC但我的外部显示器是不被X识别所以我不得不’tweak’无数次使其以正确的分辨率工作。

这是我做的:

使用这个http://ubuntuforums.org/showthread.php?t=1112186教程直到第5步后,我能够在xrandr中找到一个可行且可接受的分辨率,但这不适用于LightDM登录屏幕。

不要按照上面的步骤使它坚持上面如何工作,但我认为这是在11.10中这样做的正确方法。我在ArchWiki https://wiki.archlinux.org/index.php/Xorg上发现了这篇文章,我根据自己的需要进行了调整。

首先在这里创建一个文件:/etc/X11/xorg.conf.d/10-monitor.conf

然后为您的显示添加适当的X详细信息,这是我的看法:

Section "ServerLayout"

Identifier "DualSreen"

Screen 0 "Screen0"

Screen 1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0

#Option "Xinerama" "1" #To move windows between screens

EndSection

Section "Monitor"

Identifier "LVDS1"

Option "ignore" "true"

EndSection

Section "Monitor"

Identifier "VGA1"

Option "Enable" "true"

Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync

EndSection

Section "Device"

Identifier "Device0"

Driver "intel"

Screen 0

EndSection

Section "Device"

Identifier "Device1"

Driver "intel"

Screen 1

EndSection

Section "Screen"

Identifier "Screen0"

Device "Device0"

Monitor "VGA1"

DefaultDepth 24

Option "TwinView" "0"

SubSection "Display"

Depth 24

Modes "1440x900_60.00"

EndSubSection

EndSection

Section "Screen"

Identifier "Screen1"

Device "Device1"

Monitor "LVDS1"

DefaultDepth 24

Option "TwinView" "0"

SubSection "Display"

Depth 24

EndSubSection

EndSection

添加的重要位在适当的Section "Monitor"下,包括您在使用gtf 1440 900 60.00时找到的适当的Modeline,然后在相应的Section "Screen"下,包括正确的Modes。

您会注意到我尝试做的不仅是将VGA1连接设置为合适的分辨率,还要告诉它不要使用我的LVDS1输出。显然,您需要适当调整您的产品,以匹配正确的输出数量以及适合您设置的设备,屏幕和显示部分。

对于史诗般的帖子感到抱歉,我一直在调整xorg.conf文件已经有一段时间了,我一直在使用Hannspree显示器和我之前使用的旧的xorg.conf设置11.10只是不能正常工作这就是唯一的解决方案我发现有效。

祝好运!

第五种方法

我上面的笔记本电脑遇到了类似的问题,我想在对话中添加一些东西。如果您不关心登录分辨率(我没有),但希望实际工作区是正确的分辨率,您可以将监视器信息添加到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

一旦我登录,我可以在显示器中设置我的显示器,它工作,即使我re-log(曾经给我一个很大的丑陋的错误)。

第六种方法

作为Jon Roberts回答的增强,让我指定arandr在其sh脚本生成中不包括在当前会话中工作的所有参数。例如,主监视器(如果您使用双监视器配置),不包括每个监视器的刷新率和伽玛设置。我的会话脚本看起来像这样:

#!/bin/sh

xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary

xrandr --output VGA-1 --gamma 0.8:0.7:0.55

我在第一行手动添加了–rate和–primary选项,然后手动添加第二行并进行了伽马校正,因为每当您将监视器切换到主要时,显然xrandr gamma设置都会丢失。

我不知道在制作监视器主要时是否具有伽玛设置的特定行为是有意还是错误。

此外,会话shell脚本不是由lightdm调用,而是作为启动应用程序调用,因为似乎lightdm在为xrandr做好准备之前会调用脚本,并且会发生奇怪的事情。

第七种方法

我有一个问题,想要在我的新LXDE盒子上扩展显示(不是双克隆),找到了正确的命令,但无法使其永久化。

xrandr --output VGA-0 --right-of DVI-0

上述方法似乎都太难/不是正确的方法。

这是一种享受,但我使用gedit代替:

gksu gedit /etc/xdg/lxsession/LXDE/autostart

然后在开头添加@符号末尾的行:

@xrandr --output VGA-0 --right-of DVI-0

希望对sudo-juice有所帮助并感谢您。

PS注意xrandr命令--中的双-(在我的屏幕上没有太清楚地显示)。

第八种方法

创建一个新文档并为其命名,例如/home/yourusername/yourscriptname.sh输入

#!/bin/bash

xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

xrandr --addmode VGA1 1600x900_60.00

xrandr --output VGA1 --mode 1600x900_60.00

unity --replace

并将其保存在您的主文件夹中(这将分辨率设置为1600×900)

打开启动应用程序(或运行gnome-session-properties)并单击”ADD”。在命令行中输入名称并键入:

bash /home/yourusername/yourscriptname.sh

保存它,现在每次登录时都会运行脚本,因此您需要先注销才能使其生效。在终端中运行命令(例如bash /home/yourusername/yourscriptname.sh)也是检查脚本是否有效的好主意。

参考资料

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值