我在新的联想瑜伽X1 (版本2)上安装了Ubuntu Gnome 17.04,亮度按钮开箱即用。我已经完成了我认为有必要将这些键映射到xrandr调用的步骤(如下所示),但没有任何反应,即使我记录了成功捕获的键映射事件。如果我手动运行记录的命令,亮度会发生相应的变化。我在ACPI路线中遗漏了什么?
首先查看亮度按钮发送的ACPI事件
$ acpi_listen
video/brightnessdown BRTDN 00000087 00000000
video/brightnessup BRTUP 00000086 00000000然后创建事件定义
$ cat yoga-brightness-up
event=video/brightnessup BRTUP 00000086
action=/etc/acpi/yoga-brightness.sh up
$ cat yoga-brightness-down
event=video/brightnessdown BRTDN 00000087
action=/etc/acpi/yoga-brightness.sh down定义操作脚本
$ cat /etc/acpi/yoga-brightness.sh
#!/bin/sh
# Where the backlight brightness is stored
BR_DIR="/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/"
test -d "$BR_DIR" || exit 0
MIN=0
MAX=$(cat "$BR_DIR/max_brightness")
VAL=$(cat "$BR_DIR/brightness")
if [ "$1" = down ]; then
VAL=$((VAL-71))
else
VAL=$((VAL+71))
fi
if [ "$VAL" -lt $MIN ]; then
VAL=$MIN
elif [ "$VAL" -gt $MAX ]; then
VAL=$MAX
fi
PERCENT=`echo "$VAL / $MAX" | bc -l`
#export XAUTHORITY=/home/ivo/.Xauthority # CHANGE "ivo" TO YOUR USER
#export DISPLAY=:0.0
export XAUTHORITY=/home/jorvis/.Xauthority
export DISPLAY=:0
echo "xrandr --output eDP-1 --brightness $PERCENT" > /tmp/yoga-brightness.log
xrandr --output eDP-1 --brightness $PERCENT
echo $VAL > "$BR_DIR/brightness"重新启动acpid
$ sudo /etc/init.d/acpid reload成功应该写入亮度日志
$ rm /tmp/yoga-brightness.log按三次亮度向下按钮
$ sudo cat /tmp/yoga-brightness.log
xrandr --output eDP-1 --brightness .76603773584905660377Log写入正确,亮度值也正确:
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness
759但是在实际的显示器上什么也没有发生。不过,如果我手动运行记录为已运行的命令,它确实可以工作。
$ xrandr --output eDP-1 --brightness .76603773584905660377发布于 2017-07-23 06:27:55
读完这篇文章后,我再次注意到ENV部分,并仔细检查了它。问题出在脚本中$XAUTHORITY的设置上。它可以指向我的~/.Xauthority (默认情况下它不存在),但我需要这样做:
$ ln -s /run/user/1000/gdm/Xauthority ~/.Xauthority在那之后,亮度按钮开始工作。
https://stackoverflow.com/questions/45259765
复制相似问题