![通过硬件亮度开关实现细粒度控制](https://linux22.com/image/819548/%E9%80%9A%E8%BF%87%E7%A1%AC%E4%BB%B6%E4%BA%AE%E5%BA%A6%E5%BC%80%E5%85%B3%E5%AE%9E%E7%8E%B0%E7%BB%86%E7%B2%92%E5%BA%A6%E6%8E%A7%E5%88%B6.png)
因此,每当我按下键盘上的调暗/调亮键时,就会弹出一个带有屏幕亮度的通知气泡。这一切都很好,但我希望能够更改每次按下按键时亮度的变化程度。
例如,目前只需按 5 次即可从完全黑暗变为最亮设置。但是,我从“亮度/锁定”设置中知道,屏幕能够实现比这更小的间隔。
有没有办法可以改变每次按下按键时亮度跳跃的程度?
答案1
由于您没有指定您使用的桌面环境,我还将提供一些特定于 KDE 的详细信息。
我刚刚将 KDE 更新到 4.9.2,遇到了同样的不便。我决定深入研究代码,以下是我的结论:
- 亮度其实是由内核自己控制的,根据 KDE 的 PowerDevil 源代码,内核提供控制接口的基本方式有两种:
- sysctl()系统调用(我猜可能是在 *BSD 系统上)
- 系统文件系统界面(可能是 Linux)
- 系统文件系统界面位于
/sys/class/backlight/*your_backlight_type*/
。它对我来说是这样的:$ ls -1 /sys/class/backlight/intel_backlight/ 实际亮度 bl_power 亮度 设备 最大亮度 力量 子系统 类型 事件
现在有两个文件与我们相关:brightness
和max_brightness
。它们的使用方法如下:$ cd /sys/class/backlight/intel_backlight $ cat 最大亮度 976 $ 猫亮度 176 $ echo 77 | sudo tee 亮度 77
第一个命令让你确定可以设置的最大亮度(最小值始终为零)。第二个命令让你知道实际亮度设置为多少。第三个命令可以将其设置为任意值(在 范围内)[0; max_brightness]
。 KDE 的 KRunner 仍然可以自由设置任何亮度级别。按 Alt-F2 并输入:
屏幕亮度 17
KDE 的键盘
Brightness Up
和Brightness Down
按键处理代码已将增量值 10% 硬编码。因此,除非您想从源代码构建 KDE,否则您无法对其进行任何操作。KDE 的 BatteryMonitor plasmoid 有自己的亮度控制,其增量也硬编码为 10%,但现在我们很幸运,因为它是用 QML 编写的
$ sudo nano /usr/share/kde4/apps/plasma/plasmoids/battery/contents/ui/PopupDialog.qml
:(更新:在 KDE 4.11 中它被移到了BrightnessItem.qml
),导航到如下部分组件.滑块 { id:亮度滑块 最小值:0 最大值:100 步长:10 onValueChanged:亮度改变(值) }
并将步长更改为您想要的大小。重新登录后,您将看到更改。
答案2
这是我做的,对我来说效果好多了。我的屏幕亮度有很多增量,因为它是 LED 背光,有人想到利用这一点。
sudo apt-get install xbacklight
# ..and test it..
xbacklight -dec 20
xbacklight -inc 20
# If this works for you, you can proceed
我使用的是 KDE,但这也适用于 Gnome。对于 KDE:
- 打开系统设置
- 打开快捷方式和手势
- 选择自定义快捷方式在左侧栏中,如果尚未选择
- 右键单击操作列表的空白部分,然后选择新建->全局快捷方式
- 创建一个名为“亮度调高”和一个名为“亮度调低”
- 为了扳机,使用亮度调高/调低键。这些会与默认设置冲突,但您可以将其重新分配给此操作。
- 为了行动,输入(例如)“xbacklight -inc 3”或“xbacklight -dec 3”(减去引号)
- 数字越大,背光增加/减少幅度越大,数字越小,背光减少/增加幅度越小。
您还可以设置特定的百分比:
xbacklight -set 100
有时,增量或百分比的改变可能没有效果。这是因为硬件只允许特定的设置,并且使用最接近所选百分比的设置。
顺便说一句,我很高兴地发现,尽管这是一个进行更改的较低级程序,但 KDE 仍然可以识别屏幕亮度已改变并适当地显示亮度百分比。:-)
答案3
通过硬件亮度开关实现细粒度控制
首先,安装xbacklight
$ sudo apt install xbacklight
其次,检查您是否可以控制背光。
$ xbacklight -1
$ xbacklight +5
如果这些命令导致No outputs have backlight property
错误,那么按照以下补救步骤然后才能继续。
一旦从命令行启动xbacklight -1
并xbacklight +1
运行,请继续将这些命令分别分配给XF86MonBrightnessDown
和XF86MonBrightnessUp
键。这是通过在设置 → 键盘 → 应用程序快捷方式应用程序询问时按下这些键来完成的。
最后,重启以使这些更改生效。
答案4
使用自定义快捷方式
KDEqdbus
默认使用更改亮度,您可以使用以下命令添加自定义快捷方式,以自定义步骤调整亮度
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl
org.kde.Solid.PowerManagement.Actions.BrightnessControl.setBrightness $(expr $(qdbus
org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl
org.kde.Solid.PowerManagement.Actions.BrightnessControl.brightness) [+ Or -] [Jump step size number])
(自行编辑命令结尾)