![编辑(附加信息)](https://linux22.com/image/822377/%E7%BC%96%E8%BE%91%EF%BC%88%E9%99%84%E5%8A%A0%E4%BF%A1%E6%81%AF%EF%BC%89.png)
问题:我的笔记本电脑有 16 个亮度级别,但按热键Fn+Home
可以Fn+End
调整亮度3 个步骤(例如从0到3,或从15到12)。
我觉得有必要注意在登录屏幕上热键工作正常。但登录后出现奇怪的行为。
还,如果我把焦点放在菜单上(例如点击文件菜单),热键工作正常。
xdotool key XF86MonBrightnessDown
工作正常,调整亮度1步(用 检查cat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness
)。
我也安装了indicator-brightness
- 它显示 16 个级别 (0-15)。
我尝试acpi_backlight=vendor
在 grub 中进行设置(受此主题启发:http://ubuntuforums.org/showthread.php?t=1909184有类似的问题)。热键工作正常。但 OSD 通知、xdotool 和亮度指示器出现了问题。所以我认为这不是一个正确的解决方案。
似乎登录后某些东西会干扰热键处理方案。有什么想法吗?
编辑(附加信息)
我观察到热键在硬件层面上起作用 - 我可以在打开笔记本电脑后立即调整亮度(例如在 BIOS 屏幕上)。
$ killall gnome-settings-daemon
使用热键调整亮度一步后,没有出现任何通知。很快gnome-settings-daemon
恢复,三步问题再次出现。acpi_listen
给出以下输出(两个键依次):$ acpi_listen ibm/hotkey HKEY 00000080 00001010 video LCD0 00000086 00000000 ibm/hotkey HKEY 00000080 00001011 video LCD0 00000087 00000000
此时我认为 (1) 热键在硬件层面起作用;(2)
ibm/hotkey
负责热键;(3)video
也负责。因此,出现了三步问题。我尝试将视频列入黑名单(我预计这会导致双步行为),但没有任何变化。
作为一种解决方法,我在 CompizConfig 设置管理器中创建了自己的热键 - 如下所述这里,但带有--clearmodifiers
参数:
xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown
所以现在我可以使用初始热键或新的热键进行更精细的调整。
未解决的问题
对于双步的情况已经有了讨论:联想 ThinkPad,亮度功能键分为两个步骤,而不是一个步骤,正在寻找解决方法:
硬件只是执行此操作,然后还发出信号表示按钮已被按下。您是否可以在“系统 -> 偏好设置 -> 键盘快捷键”中取消设置此操作的快捷方式?
但我很想知道,
- 为什么我得到三倍步骤问题?
- 我怎样才能取消处理此热键?
如果有人解释一下我将非常感激。
答案1
1 次按键的 3 个步骤从何而来?
只需按一次键即可获得三个亮度等级,因为:
- 标准 ACPI/视频驱动程序调整步骤1
- 驱动
thinkpad_acpi
程序告诉 BIOS 进行调整第2步但仍然转发按键事件 - GNOME 电源守护进程拦截此按键并告诉 ACPI 再次进行调整步骤 3
1. 禁用视频驱动程序自行调节亮度
这样就省去了上面三个步骤(步骤 1)中的一个。
- 打开终端
- 类型
sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
- 测试,现在你应该可以按步骤控制亮度二
要在启动时自动禁用此功能,请
/etc/rc.local
在您最喜欢的编辑器中打开,然后前最后一行(exit 0
),添加:echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled
2.重新编译thinkpad_acpi
模块,解决双击问题
- 我们必须停止
thinkpad_acpi
通过 BIOS 调整亮度,并仅有的将按键转发给 GNOME,以便 GNOME 进行唯一的调整步骤 - 这是一个已知错误这个问题在内核 3.4+ 中已经修复
为了修复 Ubuntu 12.04/Precise 的问题,我们将修补其版本
thinkpad_acpi
并重新编译它:- 安装内核头文件:
sudo apt-get install linux-headers-$(uname -r)
- 安装构建工具
sudo apt-get install build-essential
- 创建一个临时目录并更改至该目录:
mkdir ~/tpacpi-bright && cd ~/tpacpi-bright
thinkpad_acpi.c
从 Ubuntu Kernel git 存储库下载并修补源文件:wget -O- "http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-precise.git;\ a = blob_plain; f =驱动程序/平台/x86/thinkpad_acpi.c; hb = HEAD“ \ | sed -e 's/tp_features.bright_acpimode && acpi_video/acpi_video/g' \ >thinkpad_acpi.c
thinkpad_acpi.c
在下载的同一文件夹中,您需要一个“Makefile”。您可以直接从此处下载粘贴箱, 使用:wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT
或者将以下内容粘贴到名为 的文件中
Makefile
:obj-m += thinkpad_acpi.o
全部: 制作-C / lib / modules / $(shell uname -r)/ build M = $(PWD)模块
干净的: 使-C / lib / modules / $(shell uname-r)/ build M = $(PWD)清洁- 现在输入
make
以创建模块;thinkpad_acpi.ko
完成后您将在文件夹中看到一个文件。
- 安装内核头文件:
加载修补后的模块后对其进行测试:
须藤 rmmod thinkpad_acpi && 须藤 lsmod thinkpad_acpi.ko
如果亮度现在已固定并且您可以完全控制,请使用修补的模块替换库存模块:
TPDIR=/lib/模块/$(uname -r)/内核/驱动程序/平台/x86 sudo mv $TPDIR/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko.stock sudo mv ~/tpacpi-bright/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko
您可以使用 清理构建文件夹
make clean
;保留它以供将来的内核升级使用!
答案2
我遇到了和你完全相同的问题,而且我的系统总是在屏幕关闭的情况下启动。
我想感谢你为我指明了正确的方向,acpi_backlight=vendor
帮我解决了问题,没有遇到你遇到的任何问题。我使用的是 HP G7 1116sg,带有混合显卡(Intel HD3000(目前仅使用英特尔,因为 ubuntu 中存在混合问题。我这样说只是因为 X220 被列为具有相同的图形适配器)/ Radeon HD6870) 和 Ubuntu 12.04。
只是想说 grub 的改变对我来说很有效,没有任何明显的问题。
祝你好运找到解决方案。
答案3
设置/sys/module/video/parameters/brightness_switch_enabled
为0
使我无法通过快捷键控制 Thinkpad X230 上的亮度,无论是在 tty 中还是在 xfce 4.10 中。我不得不告诉 xfce4-power-manager 不要在按键事件上更改亮度。您可以通过设置两个隐藏配置键之一来实现这一点。第一个是:
xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/change-brightness-on-key-events -s false
第二个:
xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/show-brightness-popup -s false
注意:这两种设置都会禁用我系统上的亮度弹出屏幕,但至少我恢复了所有 16 个亮度级别!
答案4
在我的联想 S205 笔记本电脑中,我遇到了这个问题,视频驱动程序和 gnome 都调整了亮度。
但是我禁用该brightness_switch_enabled
属性的经验是,gnome 很慢并且在更新背光时似乎很不协调 --- 例如,如果我将按键按下几秒钟然后松开,gnome 仍然需要 5-10 秒来处理事件。
因此,我更喜欢让视频驱动程序进行调整,并阻止 gnome 进行调整。
sudo chmod -x /usr/lib/gnome-settings-daemon/gsd-backlight-helper
禁用这个gsd-backlight-helper
功能对我来说很管用。我爬遍了互联网,似乎没有用户可见的选项来做同样的事情。
我确实失去了亮度 OSD,但现在亮度变化可以立即处理,而且作为奖励,我仍然可以通过 tty 控制亮度。