将显示设置应用于所有用户帐户?


14

我花了一些时间使多台显示器的设置正确无误,并且在登录时可以正常工作,但不适用于登录屏幕或其他用户。

如何为所有用户和登录屏幕全局设置显示设置?


您是如何设定的?通过GUI或命令行,您的设置到底有什么用?
Jacob Vlijm 2015年

我认为,使用“屏幕显示” GUI可以在其中显示设置。两台显示器,其中一台旋转。
mirams 2015年

askubuntu.com/questions/360886/…将登录设置为与一个用户相同,这很有帮助。askubuntu.com/questions/372729/…似乎解决了旧的xorg设置,这些设置已在14.04中不再使用(我认为?)。在14.04上找不到有关如何执行此操作的任何问题或答案...
mirams 2015年

我尝试了该答案,屏幕旋转正确以进行登录,然后用户没有旋转(即使删除了他们的本地monitors.xml之后)
mirams 2015年

赏金让我有些惊讶,如果您设置了显示器,sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/按照前面的建议运行,再加上下面的解决方案,则可以完全按照您的描述为所有用户(包括新用户)进行设置。
Jacob Vlijm 2015年

Answers:


14

根据您设置系统的方式,就像将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/

注意¹:您将来将创建的所有用户


1
我已经在评论中(以及我先前的回答,但是回滚了)提出了建议,但是OP提到这还不够。这仅对登录屏幕有效:) 除非您将新用户再次复制到这些用户,否则它也不适用于用户。
Jacob Vlijm 2015年

@JacobVlijm:再读一遍...我的是用于登录屏幕的,所有用户 ... :P (OP将该评论留在此处作为注释,认为它不起作用将警告其他海报,请不要键入所有内容第三次) > :-)
Fabby

1
我不建议将文件复制到所有用户,因为这样:我想要一个解决方案,将设置应用于所有用户帐户(以及将来的用户帐户),并使登录屏幕看起来正确。添加/etc/xdg 似乎也是对新用户做到的唯一技巧。
Jacob Vlijm 2015年

@JacobVlijm:啊,错过了那个!(同时也添加了解决方案) ;-)
Fabby 2015年

2
这是最好的答案-正确设置所有监视器,并且也可以立即为来宾用户使用。另外,还有一种方法也可以从“显示设置” GUI复制“启动器放置”设置吗?在我的用户上,它仅在一台显示器上,而对于新用户/来宾用户,则在两台显示器上。
mirams 2015年

3

为每个登录用户设置屏幕配置(这不会更改登录屏幕上的配置),您可以.desktop/etc/xdg/autostart

怎么做

  1. 通过运行找出要旋转的屏幕的名称xrandr。它将输出许多行,其中包括几行,如下所示:

    VGA-0 connected
    

    这为您提供了有关已连接屏幕名称的信息。

  2. 在下面的示例中,选择您想要旋转的那个 VGA-0
  3. 用(例如)创建一个启动器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
    

    旋转屏幕左侧,没必要说,如果你想另一种类型的旋转,你可以选择leftrightnormalinverted(见这里)

说明

您可以在启动时运行命令(实际上是登录),方法是将.desktop文件(启动器)放在中~/.config/autostart。这只会为单个用户运行启动器。如果您执行相同的操作,但是将启动器放置在中/etc/xdg/autostart,则只要有任何用户登录,该命令就会运行,除非特定用户在“ Dash”>“启动应用程序”中为其禁用启动器。

此外,您只需将本地~/.config/monitors.xml文件复制到,/var/lib/lightdm/monitors.xml即可在登录屏幕上使设置生效。

同时,结合上述解决方案和上面的解决方案(中的启动器/etc/xdg)是实现登录屏幕和(任何)用户所需的最简单的解决方案。另外,启动器的解决方案/etc/xdg很容易被颠倒或更改,以防您需要进行另一种设置,而无需在每个用户级别上编辑许多文件,因为用户设置和登录屏幕均受管理所有用户同时存储在两个简单文件中。


这可能行得通-登录后10秒钟更改设置,但我更希望知道从何处开始设置,并为每个人更改(以及登录屏幕,当前处于横向状态)。
mirams 2015年

为什么有人会对此表示反对?
Fabby 2015年

2

只是想为任何发现类似问题的人添加评论。每次登录时,我都无法使用旧显示器的分辨率(1280x1024),但是登录屏幕和来宾用户登录使用正确的默认1680x1050。

在过去的四个月中,我已经阅读了很多帖子以寻找答案,阅读了xorg.conf,monitors.xml,lightdmxrandr以及其他建议-但某些配置更改很复杂,并且有破坏显示的风险完全,所以我最终使用gui在每次登录时手动更改了监视器设置。

今天,我为.config文件夹中的旧分辨率做了grep。

grep -HrnIF '1280' .config | less

第一个结果是〜/ .config / autostart / xrandr.desktop文件,其中包含该文件,

Exec=xrandr -s 1280x1024 -r 75

所以我只是将文件移到那里。宾果游戏,我登录并获得默认的1680x1050分辨率。

我花了几个小时进行搜索,但找不到足够接近的答案,因此请在此处发布,以免对某人有用。


欢迎来到Ask Ubuntu。感谢您分享四个月(经过的时间)的研究成果。
WinEunuuchs2Unix

再读一遍,我想我可能在两年前创建了那个xrandr.desktop文件,以避开Ubuntu始终默认使用“ Goldstar”基本监视器设置的问题,这可能是我的显卡的兼容性问题。
MattB

0

您不妨在上添加一些内容/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


如果您可以尝试一下,那就太好了,我很想知道这是否对您有用。
nixpower

0

在我用于登录屏幕的系统(Ubuntu 16.04)上,仅以cproot身份(使用sudo)无法正常工作。您可能还需要确保monitors.xml的所有者/组为lightdm:lightdm

sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.