赞
踩
因为学习需要,在Win10系统的基础上安装了Ubuntu20.04 LTS 双系统,但遇到了各种各样的问题。经过一番搜索,解决了大部分的问题,但最难搞的就是屏幕亮度调不了的问题。虽然这并不是什么硬伤,但是这个刺眼的屏幕亮度太辣眼睛了,解决一下还是有必要的。网上看过了许多文章,许多办法都尝试过,但终究是没能很好的解决,最终经过一番努力找到了一个比较能让我满意的办法。这也许是你未曾看到过的一种解决方法,如果你也有这个问题,在你的系统上应该也可以适用。
我的尝试历程和这篇博文比较相似,除此之外还尝试了一些方法。
好像还试了几种方法来着,也不太记得了,主要就是这些。
虽然下载Brightness Controller Simple软件可以实现调节亮度,但是有些麻烦,还是希望能够像正常电脑一样用键盘或拖系统的亮度条完成控制。
想到的第一个方法就是看能不能给这个控制程序传参数以便通过命令控制,如果可以的话就会好处理很多,但难受的是传参数并没有用。
不过随后意外发现这个程序是用python写的,就用文本方式打开看了下源码,读了一下感觉还是很好理解的。最核心的就是调用系统的驱动,也被软件开发者封装成了一个函数,获取驱动后通过系统命令就可以进行控制。
了解到这些后,马上打开控制台开始尝试调整亮度,果然凑效了!再结合之前读文章时发现存储系统亮度值的是/sys/class/backlight/acpi_video0/brightness这个文件,就写了一小段程序来实时监测这个文件并控制屏幕亮度。实验非常成功,然后将这个python脚本设置成开机自动运行就完美解决问题了~
第一步先找到存储系统亮度值的文件,目前了解情况看来ubuntu应该都是有/sys/class/backlight/acpi_video0/brightness这个文件的吧,不是的话需要找一下对应的文件。使用cat命令看一下内容发现里面只有一个亮度值的整数文本,非常方便读取,调节系统亮度值也会刷新数值。
接着在/usr目录下新建个目录并创建python脚本,代码很简单,有额外需要的c友可以自行修改使用。
cd /usr
mkdir self_documents
cd self_documents
sudo gedit ubuntu_brightness_assistant.py
打开文本后粘贴python代码如下,然后保存退出:
import sys import subprocess import time from os import system import os # 这部分函数来自Brightness Controller Simple软件 def detect_display_devices(): """Detects available displays""" connected_devs = [] xrandr_output = subprocess.check_output('xrandr -q', shell=True) lines = str(xrandr_output, encoding="utf-8").split('\n') for line in lines: words = line.split(' ') for word in words: if word == 'connected': connected_devs.append(words[0]) return connected_devs def get_system_brightness(path: str) -> int: brightness = 100 if os.path.exists(path): with open(path, 'r') as f: brightness = int(f.readline()) else: return brightness return brightness def main(argv): detected_device = detect_display_devices()[0] brightness = 100 while True: time.sleep(0.1) if brightness != get_system_brightness(argv[1]): brightness = get_system_brightness(argv[1]) system('xrandr --output %s --brightness %.2f' % (detected_device, brightness / 100)) if __name__ == '__main__': main(sys.argv)
这个python脚本需要传入一个参数,就是那个存着系统亮度值的文件路径,接下来只要用下面命令运行这个python脚本就可以通过系统改变屏幕亮度值了。
python3 /usr/self_documents/ubuntu_brightness_assistant.py /sys/class/backlight/acpi_video0/brightness &
为了不用每次都开机手动跑一下这个命令才能控制亮度,需要把这个命令添加到开机启动里面。
装了Ubuntu双系统还是碰到了不少的问题,花费了好多的时间去找资料和解决,还是感谢许多c友的慷慨分享,节约了我许多时间。同时也把我自己探索的一点经历分享出来,希望能帮到遇到和我一样问题的c友,节省一点你们的时间,同时也记录一下排坑经历。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。