无法使用 dbus-send 更改键盘背光

无法使用 dbus-send 更改键盘背光

我有 kde 桌面环境,Fn+ F3/F4按钮无法改变键盘亮度。

我还在全局快捷菜单中指定其他键来增加或减少键盘亮度,但它不再起作用。


因此我尝试通过此命令改变亮度级别:

echo 3 | sudo tee /sys/class/leds/asus::kbd_backlight/brightness

键盘亮度变化成功地

但是 kde 使用 dbus 来改变键盘亮度,所以我尝试使用这个命令(可以在Arch 维基):

dbus-send --type=method_call --print-reply=literal --system --dest='org.freedesktop.UPower' '/org/freedesktop/UPower/KbdBacklight' 'org.freedesktop.UPower.KbdBacklight.SetBrightness' int32:2

但亮度根本没有变化,而且我收到这个错误:

Error org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.UPower.KbdBacklight” on object at path /org/freedesktop/UPower/KbdBacklight

因此我尝试更改该文件的权限:

sudo chmod 666 /sys/class/leds/asus::kbd_backlight/brightness

‌但我无法再通过Fn+ F3/F4或 dbus 改变键盘亮度。


附加信息:

Fn+F3F4组合键效果很好,我可以看到信号发送得很好:

$ xev | sed -n 's/^.*state \([0-9].*\), keycode *\([0-9]\+\) *\(.*\), .*$/keycode \2 = \3, state = \1/p'
keycode 237 = (keysym 0x1008ff06, XF86KbdBrightnessDown), state = 0x10
keycode 237 = (keysym 0x1008ff06, XF86KbdBrightnessDown), state = 0x10
keycode 238 = (keysym 0x1008ff05, XF86KbdBrightnessUp), state = 0x10
keycode 238 = (keysym 0x1008ff05, XF86KbdBrightnessUp), state = 0x10

那么如何使用 dbus 改变键盘亮度?

答案1

正如您所说,您正在使用包0.99.8-2的版本upower

在最近更新的upower许多发行版用户,如Debian stable,Arch linux,Ubuntu cosmic,都遇到了这个问题。

例如问题与您的相关,已在upowerGitLab 页面中打开。

根据该链接,这种方法应该可以解决你的问题(它解决了我在 debian sid 上的问题):

upower1.对服务进行覆盖配置:

sudo systemctl edit upower.service

2.在其中写入以下几行:

[Service]
ProtectKernelTunables=false

3.通过此命令检查更改:

systemctl show upower.service | grep ProtectKernelTunables

如果你看到这个输出,说明你做对了:

ProtectKernelTunables=no

有关ProtectKernelTunables=参数的更多详细信息,您可以查看此链接

4. 重新启动系统(您也可以重新启动upower服务dbus,但最好重新启动系统以完全重新启动所有服务)。

5.检查键盘背光。现在你不应该在命令输出中看到类似这样的内容journalctl | grep -i upowerd

upowerd[2907]: up_kbd_backlight_brightness_read: assertion 'fd >= 0' failed

Fn并且您的键盘背光应该可以通过+F3Fn+F4组合键或 dbus 命令进行更改:

dbus-send --type=method_call --print-reply=literal --system --dest='org.freedesktop.UPower' '/org/freedesktop/UPower/KbdBacklight' 'org.freedesktop.UPower.KbdBacklight.SetBrightness' int32:3

相关内容