笔记本电脑:MacbookPro 11,5,配备 AMD gpu
操作系统:Lubuntu 17.04
我按照说明进行操作https://wiki.archlinux.org/index.php/MacBookPro11,x并且它成功了。
- 在 MacOS X 中禁用自动 gpu 切换(不确定是否有帮助)。
- 下载并编译https://github.com/problame/gmux_backlight
sudo setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0
sudo gmux_backlight 120
- 可以用脚本调整亮度。
问题是
sudo
每次都要用- F1/F2 键不会改变亮度。
如何解决这个问题?
更新(以下特登的答案)
将编译后的文件gmux_backlight
移至/usr/sbin/
用于sudo visudo
让每个用户gmux_backlight
输入sudo
或不输入密码即可运行。
<username1> ALL=NOPASSWD:/usr/sbin/gmux_backlight
<username2> ALL=NOPASSWD:/usr/sbin/gmux_backlight
<username3> ALL=NOPASSWD:/usr/sbin/gmux_backlight
创建/etc/init.d/gmux_backlight_fix
并sudo chmod +x
编写脚本。
#!/bin/bash -e
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0 >/dev/null
将脚本符号链接到运行级别 2(Ubuntu 的图形运行级别),优先级最低(99),如下所示如何在以 root 身份启动时运行脚本。
sudo ln -s /etc/init.d/gmux_backlight_fix /etc/rc2.d/S99gmux_backlight_fix
添加到~/.config/openbox/lubuntu-rc.xml
每个用户的部分。
<keyboard>
<chainQuitKey>C-g</chainQuitKey>
<!-- My Keys -->
<keybind key="XF86LaunchA">
<action name="Execute">
<command>sudo gmux_backlight -10</command>
</action>
</keybind>
<keybind key="XF86LaunchB">
<action name="Execute">
<command>sudo gmux_backlight +10</command>
</action>
</keybind>
我使用 Fn-F3 和 Fn-F4 因为 Lubuntu 无法自动检测笔记本电脑上的 Fn-F1 和 Fn-F2。
最初,我编写了一个 bash 脚本,该脚本接受参数并授予每个用户使用 sudo 运行该脚本的权限。一段时间后,我担心有人会破坏该 bash 脚本并使用 sudo 权限运行任何命令。因此,我使用编译后的二进制文件代替我的 bash 脚本。
旧的 bash 脚本是/usr/sbin/gmux_capped_backlight
:
#!/bin/bash -e
# setpci
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0 >/dev/null
# Get current brightness
CB="$( cat /sys/class/backlight/gmux_backlight/brightness )"
# Split characters of argument
arg=$1
first_char=${arg:0:1}
other_char=${arg:1}
# Desired Brightness
if [ $first_char == "+" ]; then
Brightness=$(expr $CB + $other_char)
elif [ $first_char == "-" ]; then
Brightness=$(expr $CB - $other_char)
else
Brightness=$arg
fi
# Limit the range of brightness #
Max=1024
Min=0
if [ $Brightness -gt $Max ]; then
Brightness=$Max
fi
if [ $Brightness -lt $Min ]; then
Brightness=$Min
fi
答案1
既然您说您已经可以使用脚本进行调整,那么看起来您已经快完成了。您只需要:
设置
sudo
允许你的用户无需密码即可执行该特定脚本。首先,打开终端并运行sudo visudo
。这将打开你的默认编辑器窗口。将此行添加到文件:terdon ALL=NOPASSWD:/path/to/your/script
显然,请更改
terdon
为您的用户名,然后更改/path/to/your/script
为脚本的路径。如果您能确保路径中没有空格,这将使您的工作更轻松。现在,保存文件并关闭它。现在,您无需输入 root 密码即可运行脚本,因此您需要做的就是将提高和降低亮度的命令分配给 F1/F2 键。我不使用 LXDE,但我找到了一个论坛帖子这里
~/.config/openbox/lxde-rc.xml
这表明你可以通过编辑和添加如下内容来实现:<keybind key="F2"> <action name="Execute"> <command>/path/to/your/script increaseBrightness</command> </action> </keybind> <keybind key="F1"> <action name="Execute"> <command>/path/to/your/script decreaseBrightness</command> </action> </keybind>
对于这两种情况,使用脚本所需的任何参数来提高/降低亮度。
或者,您也可以通过安装来执行此操作
xbindkeys
:sudo apt-get install xbindkeys
创建默认设置文件:
xbindkeys --defaults > `~/.xbindkeysrc`
获取您密钥的正确密钥代码。它很可能类似于
F1
。然后,编辑~/.xbindkeysrc
并添加以下内容:"/path/to/your/script increaseBrightness" F2 "/path/to/your/script decreaseBrightness" F1
最后,运行
xbindkeys
,您的快捷方式应该就可以使用了。将其添加到您的启动程序列表中,这样它就会在您登录时始终运行。