锁定屏幕/显示后键盘背光打开

dse*_*ton 9 keyboard lock-screen dell keyboard-backlight 15.10

我刚刚升级了 Ubuntu(15.04 到 15.10),现在我遇到了一个奇怪的行为:每当我锁定屏幕时(使用 Ctrl+Alt+L、Win+L 中的任何一个或者只是点击任务栏中的“锁定”菜单),键盘背光打开,即使我总是保持关闭。

我不知道从哪里开始调查这个。它没有发生在 Ubuntu 15.04 中,其他人似乎也没有遇到过这种情况。

如果有帮助,我的笔记本电脑是戴尔 Inspiron。

更新:我后来了解到这个问题会在显示器打开时发生,这会在我因为bug锁定屏幕后立即发生。所以,这些都是相关事件,但实际原因是屏幕打开。

dse*_*ton 13

所以,Web 真的是一个了不起的东西!经过大量研究和深入许多论坛链接后,我设法更好地理解了这个问题,找出造成它的程序,最后,永久禁用这种行为。我想我会写下我的步骤,以防其他人遇到同样的问题。

步骤 1. 监控系统以了解键盘背光是否/何时开启

首先要知道键盘背光的当前状态可以通过读取文件来查看/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness。因此,我们希望收到有关此文件的任何更改以及理想情况下调用更改的进程的通知。

这可以使用fanotify来完成。我使用了手册页中提供的示例程序并添加了一些修改*,以便我可以监视亮度文件的更改。结果发现,负责修改/usr/lib/upower/upowerd的进程was ,它是UPower的守护进程。

步骤 2. 找出 UPower 打开背光的原因(失败)

这是调查中最模糊的部分,我仍然不知道为什么会发生这种情况。我发现一个人有一个非常相似的问题但没有解决方案,所以当我找到这个链接时,我开始看看我是否可以完全禁用 UPower(以及会产生什么后果)。原来UPower有一个配置文件!这样更好。

步骤 3. 停止 UPower 打开键盘背光

最后,我编辑了上述配置文件,位于/etc/dbus-1/system.d/org.freedesktop.UPower.conf,并更改<allow><deny>以下行:

<allow send_destination="org.freedesktop.UPower"
       send_interface="org.freedesktop.UPower.KbdBacklight"/>
Run Code Online (Sandbox Code Playgroud)

然后我用sudo service dbus restartsystemctl restart dbus.service在 Ubuntu 16.04 及更高版本上使用)重新启动 dbus并继续锁定我的屏幕以测试结果......它有效!嗯,有点。登录屏幕不会出现,所以我无法重新登录,不得不强制重启。但后来 一切都很好!

就是这样!我仍然很好奇这样做的正确方法是什么。如果你知道,请留下评论!

* 例如,示例程序仅设置为监视FAN_OPEN_PERMFAN_CLOSE_WRITE事件,但在此它是一个FAN_MODIFY事件。