联想屏幕背光无法用Fn键设置亮度功能

联想屏幕背光无法用Fn键设置亮度功能

意识到这部分是一个已知问题,因为每个问题都是单独且不同的,所以问题如下:

在我的配备 Linux Mint 的 Lenovo 笔记本电脑上,无法使用 Fn+F6/F7 设置背光。这些键根本不会被检测到,无论是被检测到xev还是被检测到acpi_listen。然而,这两个命令都会检测到其他组合键,例如用于调高音量的 Fn+F3。所以恐怕这是一个较低级别的问题。另一方面,这也很有效:

  • echo 10000 | sudo tee /sys/class/backlight/intel_backlight/brightness还有
  • 与 GUI 滑块mate-power-preferences完美配合。
  • xdotool key 232 或者xdotool key XF86MonBrightnessDown

更详细:

  • 我尝试了很多启动组合(是的,我更新了 GRUB 并重新启动,如本故障排除中所述wiki.ubuntu.com 调试/背光
  • 我尝试按照建议在 /usr/share/X11/xorg.conf.d/ 中添加文件(80-backlight.conf同时使用“Backlight”“ideapad”和“intel_backlight”,或20-intel.conf

uname -a产量:Linux Lenovo-V14-G2-ITL 5.8.0-53-generic #60~20.04.1-Ubuntu SMP Thu May 6 09:52:46 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

这些是可用的背光(可以使用 cat 编写)

$ ls /sys/class/backlight/
ideapad  intel_backlight

这是我当前的配置

$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-5.8.0-53-generic root=/dev/mapper/vgmint-root ro pcie_aspm=force acpi_osi=Linux acpi_backlight=vendor quiet splash

我尝试了这些(以及单独和许多组合,唯一可见的效果是输出ls /sys/class/backlight/正在改变)

GRUB_CMDLINE_LINUX="pcie_aspm=force acpi_osi=linux acpi_backlight=vendor video.use_native_backlight=1"

答案1

我喜欢使用该light实用程序来控制背光(在 Ubuntu 中,它位于包中light)。

所以在 Ubuntu 上,我这样做了:

sudo apt install light
vim .config/sway/config

将这些行添加到某个位置.config/sway/config(或者/etc/sway/config如果你家里什么都没有的话):

#
# Backlight controll using thinkpad Fn+F5 and Fn+F6
#
    # Increase and decrease backlight in 4% steps
    bindsym XF86MonBrightnessUp exec sudo light -A 4
    bindsym XF86MonBrightnessDown exec sudo light -U 4

如果您需要 root 权限才能使用 light,这些命令将为您提供解决方案:

light -A 5 -v 3
ls -alh /sys/class/backlight/intel_backlight/brightness
sudo usermod -aG video $USER

答案2

抱歉,但我无法发表评论,所以我必须使用答案。联想是什么型号的?

看看这是否有效(并且一如既往,在修改任何配置文件之前对其进行备份):

  1. echo options hid_apple fnmode=0 | sudo tee -a /etc/modprobe.d/hid_apple.conf
  2. sudo update-initramfs -u
  3. 重启

编辑:如果fnmode=0不起作用,您可以尝试fnmode=2

答案3

我用我的做什么:

#!/bin/bash

# sputnick 2023

devvideo=$(xrandr | awk '$2 == "connected"{print $1;exit}')

if ! val=$(cat ~/.config/xrandr/brightness 2>/dev/null); then
    mkdir -p ~/.config/xrandr
    echo 0.90 > ~/.config/xrandr/brightness
    val=0.90
fi

case $1 in
    -) val="0$(bc <<< $val-0.05)"  ;;
    +) val="0$(bc <<< $val+0.05)"  ;;
esac

if ((${val#*.} <= 20 || ${val#*.} >= 100 )); then
    echo >&2 ERR
    exit 1
fi

echo $val | tee ~/.config/xrandr/brightness
exec xrandr --output $devvideo --brightness +$val

然后您可以在窗口管理器设置中设置键盘简写来运行此脚本。选择了Ctrl+fn6Ctrl+fn7

强制参数是+-。让我们

答案4

面临类似的问题...

  • i3
  • 6.5.9-arch2-1
  • 联想 IdeaPad 5 Pro 14ACN6

...我发现虽然xev不识别功能键我束缚他们...

    # backlight control
    bindsym XF86MonBrightnessUp exec display.sh 0.1
    bindsym XF86MonBrightnessDown exec sh display.sh -0.1

...一个非常简单的脚本...

#!/bin/bash

increment="$1"
brightness=$(xrandr --verbose | sed -n "/eDP/{n;n;n;n;n;s/.*: //p}")
xrandr --output eDP --brightness $(echo "$brightness + $increment " | bc)

正如您可能猜到的那样,我在写入“/sys/”背光控件时也遇到了问题,因此使用了令人讨厌的 hack xrandr

不太确定如何在 Mint 中实现键绑定(也许像这样?)但像你一样,我尝试了很多东西,并且由于绑定有效,所以已经足够好了。

更新 - 修复亮度键

我发现安装acpi_call-dkms解决了我的 Fn 键亮度控制问题,这要归功于维基百科。您可能会在存储库中找到等效项。

顺便说一句 - 谁需要亮度键?

我在摆弄使用网络摄像头作为传感器并自动控制屏幕亮度(通过 systemd 计时器、服务和脚本)时发现了上述修复,但遇到clight-gui吉图布它允许对由环境光驱动的键盘和背光的电池和交流电进行自定义独立亮度斜坡。解决了我所有的需求。

感谢 Github 上的 @FedeDP 和 @nullobsi。

相关内容