是否可以设置默认显示亮度,这样您就不必在每次重启时重新调整它?我的笔记本电脑显示屏在登录屏幕上就已经让我的眼睛很难受,因为它每次都以 100% 的亮度启动。
答案1
审查解决方案并提供(希望)更好的解决方案
先前的解决方案
/sys/
-based :适用于控制台
@gan
这可以工作echo 5 > /sys/class/backlight/acpi_video0/brightness
,但与 X 配合得不好。更具体地说,X 不知道你的首选设置,你可能需要至少再次手动设置亮度,类似于错误 #1042359。
setpci
-based :依赖于系统,危险
@erickjohncuevas
基于诸如此类的解决方案setpci -s 01:00.0 F4.B=50
是危险的。01:00.0
实际上,有一个 ID 针对 PCI 总线上的特定板。而且它是系统相关的。这意味着盲目遵循这一点可能会在其他一些板上写入配置寄存器,这可能意味着任何事情,从毫无意义到将来某个时候导致系统崩溃。无论如何,它也不能很好地与 X 配合使用。
建议的解决方案
优点/缺点
以下解决方案具有以下优点:
- 与 X 配合良好,X 完全了解所选的设置
- 更易读,因此更易于维护
- 不包含系统特定地址等,因此可以在更广泛的硬件上工作(例如内核不知道背光,或者甚至不使用基于 PCI 的视频板,想想适用于 ARM 的 Ubuntu)
假设:Ubuntu 使用 lightdm(即 11.10 及更高版本)
/sys
它只在 lightdm 启动时设置背光。但是如果你确实需要更早地设置背光,它可以与上面的基于的解决方案相结合。
解决方案
复制粘贴这些命令应该可以满足您的需要(sudo
可能会询问您的密码)。
xbacklight
如果尚未安装,请安装(它是一个小包)。sudo apt-get install xbacklight
您应该
xbacklight
在命令行上测试它是否有效。例如:xbacklight = 100 ; sleep 2 ; xbacklight = 30
尝试找出适合您的硬件和照明条件的值。
创建一个运行的小脚本
xbacklight
。
您可以=30
根据需要将更改为其他值。
确保|| true
如果xbacklight
因任何原因失败,X 仍可启动。sudo bash -c '{ echo "#!/bin/bash" echo "xbacklight =30 || true" } >> /etc/lightdm/display-setup-script.sh '
使脚本可执行
sudo chmod a+rx /etc/lightdm/display-setup-script.sh
指示
lightdm
在启动 X 时运行脚本。
具体来说,这会在 lightdm 配置文件中添加一行 display-setup-script,但前提是尚未存在该脚本。if grep -ri ^display-setup-script /etc/lightdm/ then echo "There may be already a display-setup-script. It may already do what you need. Else please adjust manually" ; else if [[ -d /etc/lightdm/lightdm.conf.d ]] then # Ubuntu 13.10 and above have lightdm.conf.d. 14.04 *only* has lightdm.conf.d. DEST_CONF_FILE=/etc/lightdm/lightdm.conf.d/20-default-brightness.conf else # Ubuntu 12.04, 12.10, 14.10 do not have lightdm.conf.d, so we change main configuration file DEST_CONF_FILE=/etc/lightdm/lightdm.conf fi echo "Writing into $DEST_CONF_FILE" sudo bash -c "{ echo '[SeatDefaults]' ; echo display-setup-script=/etc/lightdm/display-setup-script.sh ; } >> $DEST_CONF_FILE" ; fi
可以通过lightdm
从控制台上的根会话重新启动来进行测试。或者,更简单地通过重新启动。
在 Ubuntu 12.04、12.10、13.10、14.04、14.10、16.04 上测试。
请提供有关您的体验的反馈。
答案2
实际上,回显某些值对亮度没有帮助,因为该值在不同系统之间会有所不同。
首先,您需要将屏幕亮度设置为您舒适的水平,这可以在系统设置→亮度与锁定或使用功能键。
现在转到/sys/class/backlight/<folder>
(我的文件夹是intel_backlight
)
在此文件夹中,您可以看到该actual_brightness
文件和max_brightness
文件。 (如果打开此文件后对亮度进行了任何更改,请不要忘记刷新(使用 Ctrl+R 或 F5)以查看实际的当前设置。)
现在,每次启动系统时,我们都需要与亮度相同的值。这可以通过每次启动时更改此文件夹中的值来实现。我们需要更改 rc.local 文件。
首先在终端中输入这些命令(可以通过在仪表板中搜索终端或按 Ctrl+Alt+T 来打开):
sudo -i
gedit /etc/rc.local
并添加行
echo 900 > /sys/class/backlight/intel_backlight/brightness
将 900 替换为您需要的任何值(即您从上述过程中获得的值)。同时将其替换intel_backlight
为 中的文件夹名称/sys/class/backlight/
。
例如我的 /etc/rc.local:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
rfkill block bluetooth
echo 900 > /sys/class/backlight/intel_backlight/brightness
exit 0
另外,我将这行添加到rfkill block bluetooth
了我的 rc.local 文件中,因为我根本不使用蓝牙,但 Ubuntu 每次重启时都会启动蓝牙(即使蓝牙之前已关闭)。您也可以添加它,如果您想使用蓝牙,您可以随时重新启动它,即使这行在您的 rc.local 中)。
不要改变结尾处的值exit 0
。如果该行不存在,请添加它。
现在,即使您重新启动了系统,您仍然会获得所需的相同值。
请注意不要将亮度值设置为大于max_brightness
,否则会抛出一个错误,提示这是一个无效参数。
答案3
它不是默认的。每当我重新启动时,亮度都会设置为 100%。然后我使用命令设置亮度:
$ echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness
答案4
设置好首选亮度后,您可以按照 N0rbert 在此处的回答进行操作:每次重启时亮度都会重置为最大。 总之:
sudo add-apt-repository ppa:nrbrtx/sysvinit-backlight
sudo apt-get update
sudo apt-get install sysvinit-backlight
sudo service sysvinit-backlight status # Show current brightness levels and values saved in files
sudo service sysvinit-backlight start # Set saved levels from files
sudo service sysvinit-backlight stop # Save current levels to files