ubuntu调节屏幕亮度方法

安装好50系列显卡驱动后,发现电脑还是不能调节屏幕亮度。于是找到了下面两个方法进行屏幕亮度调节。

 方法一:使用nvidia自带的setting

nvidia-settings

然后进入GPU 0 --> DP-0 --> Color Correction就可以调节屏幕亮度了

方法二:直接改亮度那个配置文件

我的亮度配置文件是:/sys/class/backlight/nvidia_wmi_ec_backlight/brightness

于是我使用下面命令将亮度写到文件里面

sudo su    //为了进入root环境
echo 150 > /sys/class/backlight/nvidia_wmi_ec_backlight/brightness

方法三:下载brightness-controllor

sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt update
sudo apt install brightness-controller

但是每一次都得打开这个软件,很麻烦。于是通过自己写脚本,添加到开机自动启动项让每次开机自己启动。

1:第一步先找到存储系统亮度值的文件,目前了解情况看来ubuntu应该都是有/sys/class/backlight/acpi_video0/brightness这个文件的吧,不是的话需要找一下对应的文件。

像我安装了nvidida显卡驱动,所以在下面图片路径下。

使用cat命令看一下内容发现里面只有一个亮度值的整数文本,非常方便读取,调节系统亮度值也会刷新数值。

接着在/usr目录下新建个目录并创建python脚本,代码很简单,有额外需要的c友可以自行修改使用。

使用以下命令创建一个python脚本

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):
    # 确保提供了路径参数
    if len(argv) < 2:
        print("Error: Please provide the brightness file path as an argument.")
        sys.exit(1)

    detected_device = detect_display_devices()[0]
    brightness = 100

    # 设定亮度限制
    min_brightness = 15
    max_brightness = 90

    while True:
        time.sleep(0.1)
        current_brightness = get_system_brightness(argv[1])

        # 使用 max 和 min 函数简化亮度限制
        current_brightness = max(min_brightness, min(max_brightness, current_brightness))

        # 如果亮度发生变化,则更新
        if brightness != current_brightness:
            brightness = current_brightness
            # 调整显示器亮度
            system(f'xrandr --output {detected_device} --brightness {brightness / 100:.2f}')

if __name__ == '__main__':
    main(sys.argv)

其中我使用current_brightness = max(min_brightness, min(max_brightness, current_brightness))来进行对亮度进行限制,如果亮度太小则连鼠标在哪都看不到,太大的话屏幕就像曝光过多一样。

我设置的亮度范围为15到90

这个python脚本需要传入一个参数,就是那个存着系统亮度值的文件路径,接下来只要用下面命令运行这个python脚本就可以通过系统改变屏幕亮度值了。

python3 /usr/self_documents/ubuntu_brightness_assistant.py /sys/class/backlight/nvidia_wmi_ec_backlight/brightness &

其中最后面的参数&是让这个程序后台运行,其中的/sys/class/backlight/nvidia_wmi_ec_backlight/brightness要改为自己进行亮度调节的那个路径

最后打开ubuntu的启动应用管理进行添加开机自动启动项

里面的命令为

python3 /usr/self_documents/ubuntu_brightness_assistant.py /sys/class/backlight/nvidia_wmi_ec_backlight/brightness &

重启后就发现那个亮度调节窗口可以调节亮度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值