更新 2:仅当两个监视器都启用并且 lightdm-gtk-greeter 处于活动状态时才会发生此行为。断开连接或禁用(使用 xrandr)会产生预期的行为。
更新:实际上似乎与 light-locker 无关。在 i3 初始化以及完全删除和清除 light-locker 之前,使用 LightDM 的显示设置脚本设置 dpm 会表现出相同的行为(睡眠,然后立即唤醒)。禁用 dpms 并使用 xset 将屏幕保护程序设置为 noblank 会导致屏幕保护程序按预期工作,但显示器保持开机状态。似乎当屏幕空白时,会触发一些事件,如下面@WayneWerner 建议的那样,但我不确定如何识别该事件是什么。
我在 Debian 测试/sid 上使用 i3,并配置了 lightdm 和 light-locker。我也没有使用任何额外的电源管理器,例如 tpu 或 xfce4-power-manager。我最近升级了 GPU,从使用专有的 nVidia 驱动程序改为使用 AMDGPU。出现了意想不到的副作用:现在,当 xset 使用 light-locker 启动锁定时,lightdm 会启动,显示器进入睡眠状态,2-3 秒后显示器会在没有其他输入的情况下唤醒。当配置的 lightdm-gtk-greeter 屏幕保存超时被触发时,该过程再次发生,监视睡眠,然后立即再次唤醒,并且该过程无限期地继续。我希望显示器能够睡眠并保持睡眠状态直到被唤醒,就像它们对我的 nVidia 卡所做的那样。我确信我的某些配置不正确,我只是不确定在哪里。
在这种情况下,唯一发生变化的是 GPU 和图形驱动程序。
以下是我当前的 lightdm 配置文件的内容。
/etc/lightddm/lightdm.conf
[LightDM]
[Seat:*]
greeter-hide-users=false
[XDMCPServer]
[VNCServer]
/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
theme-name = Breeze-Dark
active-monitor = DisplayPort-1
screensaver-timeout = 10
答案1
与其说这是一种解决方案,不如说是一种缓解措施,但我对此感到满意。在 LightDM 初始化时禁用非主监视器上的输出并启用 dpms 会导致监视器成功超时并保持睡眠状态。配置如下:
LightDM 配置
[LightDM]
[Seat:*]
greeter-hide-users=false
display-setup-script=/etc/lightdm/display-config
[XDMCPServer]
[VNCServer]
/etc/lightdm/显示配置
#!/bin/sh
xrandr --output HDMI-A-0 --off --output DisplayPort-1 --primary --mode 1920x1080 --rate 75
xset dpms 10 10 10 s 10
这些设置在用户上下文中被从 .xinitrc 运行的以下脚本覆盖
#!/bin/sh
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 75 --output DisplayPort-1 --primary --mode 1920x1080 --rate 75 --left-of HDMI-A-0
xset dpms 600 600 600 s 600
它比我想要的更混乱,但现在还好。