<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>背光 on 欧式fifty 的 blog</title><link>https://blog.ous50.moe/tags/%E8%83%8C%E5%85%89/</link><description>Recent content in 背光 on 欧式fifty 的 blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>欧式fifty 2020-</copyright><lastBuildDate>Tue, 08 Nov 2022 02:06:00 +0000</lastBuildDate><atom:link href="https://blog.ous50.moe/tags/%E8%83%8C%E5%85%89/index.xml" rel="self" type="application/rss+xml"/><item><title>修复在联想拯救者系列笔记本上启用独显直连后亮度调节功能键失效的问题</title><link>https://blog.ous50.moe/p/%E4%BF%AE%E5%A4%8D%E5%9C%A8%E8%81%94%E6%83%B3%E6%8B%AF%E6%95%91%E8%80%85%E7%B3%BB%E5%88%97%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%B8%8A%E5%90%AF%E7%94%A8%E7%8B%AC%E6%98%BE%E7%9B%B4%E8%BF%9E%E5%90%8E%E4%BA%AE%E5%BA%A6%E8%B0%83%E8%8A%82%E5%8A%9F%E8%83%BD%E9%94%AE%E5%A4%B1%E6%95%88%E7%9A%84%E9%97%AE%E9%A2%98/</link><pubDate>Tue, 08 Nov 2022 02:06:00 +0000</pubDate><guid>https://blog.ous50.moe/p/%E4%BF%AE%E5%A4%8D%E5%9C%A8%E8%81%94%E6%83%B3%E6%8B%AF%E6%95%91%E8%80%85%E7%B3%BB%E5%88%97%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%B8%8A%E5%90%AF%E7%94%A8%E7%8B%AC%E6%98%BE%E7%9B%B4%E8%BF%9E%E5%90%8E%E4%BA%AE%E5%BA%A6%E8%B0%83%E8%8A%82%E5%8A%9F%E8%83%BD%E9%94%AE%E5%A4%B1%E6%95%88%E7%9A%84%E9%97%AE%E9%A2%98/</guid><description>&lt;h2 id="简介"&gt;&lt;a href="#%e7%ae%80%e4%bb%8b" class="header-anchor"&gt;&lt;/a&gt;简介
&lt;/h2&gt;&lt;p&gt;联想拯救者系列笔记本电脑使用 IdeaPad ACPI 驱动，在标准配置下，除了 F9（收藏键）、F11（切换标签页键）和 F12（计算器键）之外，几乎所有的功能键都可以正常使用，因为这几个键的 ACPI 功能没有被定义：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-zsh" data-lang="zsh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo acpi_listen
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 8FC0DE0C-B4E4- 000000d0 &lt;span class="m"&gt;00000000&lt;/span&gt; &lt;span class="c1"&gt;#F9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;^&lt;span class="o"&gt;[&lt;/span&gt;^&lt;span class="o"&gt;[[&lt;/span&gt;27&lt;span class="p"&gt;;&lt;/span&gt;5&lt;span class="p"&gt;;&lt;/span&gt;9~ &lt;span class="c1"&gt;#F11 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8FC0DE0C-B4E4- 000000d0 &lt;span class="m"&gt;00000000&lt;/span&gt; &lt;span class="c1"&gt;#F12&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但对于在 BIOS 中开启了“独显直连”选项的用户来说，F5（增加亮度）和 F6（降低亮度）功能键会失效，尽管运行 &lt;code&gt;acpi_listen&lt;/code&gt; 显示一切正常：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-zsh" data-lang="zsh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo acpi_listen
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;video/brightnessup BRTUP &lt;span class="m"&gt;00000086&lt;/span&gt; &lt;span class="m"&gt;00000000&lt;/span&gt; &lt;span class="c1"&gt;#F6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;video/brightnessdown BRTDN &lt;span class="m"&gt;00000087&lt;/span&gt; &lt;span class="m"&gt;00000000&lt;/span&gt; &lt;span class="c1"&gt;#F5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;原因是现在控制背光的设备已经变成了 &lt;code&gt;nvidia_0&lt;/code&gt;，与已定义的 acpi 操作不对应。对于 Arch Linux 用户，你可以安装 &lt;a class="link" href="https://wiki.archlinux.org/title/Backlight#xbacklight" target="_blank" rel="noopener"
 &gt;xbacklight&lt;/a&gt; 通过命令行来调整背光。但这种体验非常糟糕：每次你想调整亮度时，都必须打开控制台并以 root 权限运行 xbacklight。本文旨在修复这个功能键失效的问题。&lt;/p&gt;
&lt;p&gt;请注意：你仍然无法在“电池和亮度”设置中调整亮度。&lt;/p&gt;
&lt;h2 id="解决方案"&gt;&lt;a href="#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88" class="header-anchor"&gt;&lt;/a&gt;解决方案
&lt;/h2&gt;&lt;p&gt;只需创建这些文件然后重启即可。&lt;/p&gt;
&lt;h3 id="etcacpieventsfnf6-brightnessup"&gt;&lt;a href="#etcacpieventsfnf6-brightnessup" class="header-anchor"&gt;&lt;/a&gt;/etc/acpi/events/FnF6-brightnessup
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#FnF6 video/brightnessup BRTUP 00000086 00000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;event=video/brightnessup
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;action=https://blog.ous50.moe/etc/acpi/actions/FnF6-brightnessup.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="etcacpiactionsfnf6-brightnessupsh"&gt;&lt;a href="#etcacpiactionsfnf6-brightnessupsh" class="header-anchor"&gt;&lt;/a&gt;/etc/acpi/actions/FnF6-brightnessup.sh
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置静态增量值。请注意，这个操作会被执行两次。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 这个值取决于桌面环境的实际变化量（在 KDE 中是 6）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;IncVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取最大亮度值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -r MaxVal &amp;lt; &lt;span class="s2"&gt;&amp;#34;/sys/class/backlight/nvidia_0/max_brightness&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取当前亮度值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -r CurrVal &amp;lt; &lt;span class="s2"&gt;&amp;#34;/sys/class/backlight/nvidia_0/brightness&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置新值为当前值加上增量值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NewVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="nv"&gt;$CurrVal&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;$IncVal&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$NewVal&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 将其设置为不超过最大值的阈值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;ThresholdVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="nv"&gt;$NewVal&lt;/span&gt;&amp;lt;&lt;span class="nv"&gt;$MaxVal&lt;/span&gt;?&lt;span class="nv"&gt;$NewVal&lt;/span&gt;:&lt;span class="nv"&gt;$MaxVal&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$ThresholdVal&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 直接设置新值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -n &lt;span class="nv"&gt;$ThresholdVal&lt;/span&gt; &amp;gt; /sys/class/backlight/nvidia_0/brightness 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;logger &lt;span class="s2"&gt;&amp;#34;[ACPI] brightnessup |&lt;/span&gt;&lt;span class="nv"&gt;$CurrVal&lt;/span&gt;&lt;span class="s2"&gt;| |&lt;/span&gt;&lt;span class="nv"&gt;$NewVal&lt;/span&gt;&lt;span class="s2"&gt;| |&lt;/span&gt;&lt;span class="nv"&gt;$ThresholdVal&lt;/span&gt;&lt;span class="s2"&gt;|&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="etcacpieventsfnf5-brightnessdown"&gt;&lt;a href="#etcacpieventsfnf5-brightnessdown" class="header-anchor"&gt;&lt;/a&gt;/etc/acpi/events/FnF5-brightnessdown
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#FnF5 video/brightnessdown BRTDN 00000087 00000000 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;event=video/brightnessdown 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;action=https://blog.ous50.moe/etc/acpi/actions/FnF5-brightnessdown.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="etcacpiactionsfnf5-brightnessdownsh"&gt;&lt;a href="#etcacpiactionsfnf5-brightnessdownsh" class="header-anchor"&gt;&lt;/a&gt;/etc/acpi/actions/FnF5-brightnessdown.sh
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置静态减量值。请注意，这个操作会被执行两次。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 这个值取决于桌面环境的实际变化量（在 KDE 中是 6）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DecVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置我们接受的最小值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;MinVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取当前亮度值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -r CurrVal &amp;lt; &lt;span class="s2"&gt;&amp;#34;/sys/class/backlight/nvidia_0/brightness&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置新值为当前值减去减量值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NewVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="nv"&gt;$CurrVal&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;$DecVal&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$NewVal&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 将其设置为不低于最小值的阈值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;ThresholdVal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="nv"&gt;$NewVal&lt;/span&gt;&amp;gt;&lt;span class="nv"&gt;$MinVal&lt;/span&gt;?&lt;span class="nv"&gt;$NewVal&lt;/span&gt;:&lt;span class="nv"&gt;$MinVal&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$ThresholdVal&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 直接设置新值。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -n &lt;span class="nv"&gt;$ThresholdVal&lt;/span&gt; &amp;gt; /sys/class/backlight/nvidia_0/brightness 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;logger &lt;span class="s2"&gt;&amp;#34;[ACPI] brightnessdown |&lt;/span&gt;&lt;span class="nv"&gt;$CurrVal&lt;/span&gt;&lt;span class="s2"&gt;| |&lt;/span&gt;&lt;span class="nv"&gt;$NewVal&lt;/span&gt;&lt;span class="s2"&gt;| |&lt;/span&gt;&lt;span class="nv"&gt;$ThresholdVal&lt;/span&gt;&lt;span class="s2"&gt;|&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>