xrandr 命令仅在登录后才有效

xrandr 命令仅在登录后才有效

我有一个 xrandr 命令,可以完全按照要求设置我的显示器(不同的比例来处理 Ubuntu 目前极其有限的 HDPI 支持):

xrandr --fb 7040x2160 --output DP1 --mode 1920x1080 --pos 0x0 --scale 2x2 --output eDP1 --mode 3200x1800 --pos 3840x180 --scale 1x1

如果我在登录后在终端中运行它,它会完美运行。它也可以运行通过启动应用程序正如这些答案所示:12, 和3(无需睡眠即可工作)。我得到的配置如下所示:

Screen 0: minimum 8 x 8, current 7040 x 2160, maximum 32767 x 32767
eDP1 connected primary 3200x1800+3840+180 (normal left inverted right x axis y axis) 294mm x 165mm
   3200x1800     59.98*+  47.99  
   2880x1620     60.00  
   2560x1440     60.00  
   2048x1536     60.00  
   1920x1440     60.00  
   1856x1392     60.01  
   1792x1344     60.01  
   2048x1152     60.00  
   1920x1200     59.95  
   1920x1080     60.00    59.93  
   1600x1200     60.00  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1368x768      60.00  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
DP1 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.90  
   1280x960      60.00  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

如果我在启动过程中的任何地方运行完全相同的命令,我要么会得到乱码配置,其中我的帧缓冲区大小不正确(屏幕相互重叠),要么根本没有效果。我尝试过的地方是.xprofilelightdm配置(使用display-setup-scriptgreeter-setup-script和调用session-setup-script)。

我已经记录了命令的详细输出,它一直说设置了正确的值,但我的屏幕上的输出和xrandr之后的查询显然表明并非如此。我该如何进一步配置我的屏幕(至少让欢迎界面正确显示)?鉴于 X 服务器在此之前就已初始化,有没有办法让配置命令xrandr生效?

編輯註釋:现在的问题集中在问题的根源上“在之前配置监视器登录后

答案1

我的猜测是,在登录过程中,Unity 会尝试自行设置屏幕,因此这可能是出现故障的原因之一。如果您的登录屏幕不需要配置,并且只需要 Unity 会话,您是否会考虑将该命令添加到启动应用程序中,以便它在您登录后自动运行。这样,Unity 会应用其更改,但随后您会用自己的命令覆盖它们。

我还建议您使用命令的修改版本:

bash -c 'sleep 3 && xrandr --fb 7040x2160 --output DP1 --mode 1920x1080 --pos 0x0 --scale 2x2 --output eDP1 --mode 3200x1800 --pos 3840x180 --scale 1x1'

这样,Unity 就有足够的延迟来应用其更改,然后你再运行自己的

相关内容