我花了一些时间使多台显示器的设置正确无误,并且在登录时可以正常工作,但不适用于登录屏幕或其他用户。
如何为所有用户和登录屏幕全局设置显示设置?
sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/
按照前面的建议运行,再加上下面的解决方案,则可以完全按照您的描述为所有用户(包括新用户)进行设置。
我花了一些时间使多台显示器的设置正确无误,并且在登录时可以正常工作,但不适用于登录屏幕或其他用户。
如何为所有用户和登录屏幕全局设置显示设置?
sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/
按照前面的建议运行,再加上下面的解决方案,则可以完全按照您的描述为所有用户(包括新用户)进行设置。
Answers:
根据您设置系统的方式,就像将monitors.xml
文件从正确设置的用户复制到所有用户一样简单:
要为一个用户测试:
cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /home/TestUser/.config/
然后注销TestUser(如果已经登录),重新登录并查看是否正确。
适用于所有用户的命令:
cp /home/CorrectUser/.config/monitors.xml /tmp/
for szUser in /home/* ; do sudo cp --preserve=timestamps /tmp/monitors.xml $szUser/.config/ ; done
登录屏幕的命令:
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /var/lib/lightdm/.config/
所有未来用户的命令¹:
sudo mdkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/
注意¹:您将来将创建的所有用户
/etc/xdg
似乎也是对新用户做到的唯一技巧。
要为每个登录用户设置屏幕配置(这不会更改登录屏幕上的配置),您可以.desktop
在/etc/xdg/autostart
通过运行找出要旋转的屏幕的名称xrandr
。它将输出许多行,其中包括几行,如下所示:
VGA-0 connected
这为您提供了有关已连接屏幕名称的信息。
VGA-0
用(例如)创建一个启动器gedit
:
sudo -i gedit /etc/xdg/autostart/set_screens.desktop
将以下文本粘贴到文件中:
[Desktop Entry]
Name=set_screens
Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
Type=Application
在行中替换:
Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
字符串:VGA-0
由您(旋转的)屏幕的名称。
在行中
Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
我包括一个sleep 10
。这是因为有时,xrandr
如果在桌面“完成”加载之前运行的命令过早,它们就会中断。可能您需要增加休息时间,或者可以尝试将其保留。在命令中,按原样,任何用户登录后10秒钟后屏幕都会旋转。
命令:
xrandr --output VGA-0 --rotate left
旋转屏幕左侧,没必要说,如果你想另一种类型的旋转,你可以选择left
,right
,normal
,inverted
(见这里)。
您可以在启动时运行命令(实际上是登录),方法是将.desktop
文件(启动器)放在中~/.config/autostart
。这只会为单个用户运行启动器。如果您执行相同的操作,但是将启动器放置在中/etc/xdg/autostart
,则只要有任何用户登录,该命令就会运行,除非特定用户在“ Dash”>“启动应用程序”中为其禁用启动器。
此外,您只需将本地~/.config/monitors.xml
文件复制到,/var/lib/lightdm/monitors.xml
即可在登录屏幕上使设置生效。
同时,结合上述解决方案和上面的解决方案(中的启动器/etc/xdg
)是实现登录屏幕和(任何)用户所需的最简单的解决方案。另外,启动器的解决方案/etc/xdg
很容易被颠倒或更改,以防您需要进行另一种设置,而无需在每个用户级别上编辑许多文件,因为用户设置和登录屏幕均受管理所有用户同时存储在两个简单文件中。
只是想为任何发现类似问题的人添加评论。每次登录时,我都无法使用旧显示器的分辨率(1280x1024),但是登录屏幕和来宾用户登录使用正确的默认1680x1050。
在过去的四个月中,我已经阅读了很多帖子以寻找答案,阅读了xorg.conf,monitors.xml,lightdm和xrandr以及其他建议-但某些配置更改很复杂,并且有破坏显示的风险完全,所以我最终使用gui在每次登录时手动更改了监视器设置。
今天,我为.config文件夹中的旧分辨率做了grep。
grep -HrnIF '1280' .config | less
第一个结果是〜/ .config / autostart / xrandr.desktop文件,其中包含该文件,
Exec=xrandr -s 1280x1024 -r 75
所以我只是将文件移到那里。宾果游戏,我登录并获得默认的1680x1050分辨率。
我花了几个小时进行搜索,但找不到足够接近的答案,因此请在此处发布,以免对某人有用。
您不妨在上添加一些内容/etc/lightdm/lightdm.conf
。在这里,我们创建一个脚本,该脚本使用xrandr
命令来设置您的显示器。您可以使用一些图形RandR工具为您创建命令,例如arandr
。就我而言,脚本如下所示:
#!/bin/sh
xrandr --output DVI-I-1 --mode 1600x1200 --pos 0x0 --rotate left --output DVI-I-0 --off --output DP-3 --off --output DP-2 --off --output DP-1 --mode 1600x900 --pos 1200x700 --rotate normal --output DP-0 --off
您可以将此脚本放在/usr/share
任何需要的地方。您的脚本看起来可能不太复杂,因为这是用于复杂的双显示器设置。然后添加如下内容:
session-setup-script=/usr/share/mycustomxrandr.sh
和:
display-setup-script=/usr/share/mycustomxrandr.sh
确保文件是可执行文件,因此:
chmod a+x mycustomxrandr.sh
通过LightDM登录后,session-setup-script
将会设置显示,并会更改登录屏幕的显示。display-setup-script