監視器亮度

監視器亮度

我刚刚在实时模式下运行了 Ubuntu 21.04,以便在配备 OLED 屏幕的 XPS 15 9510 上进行完整安装之前进行测试,但我无法控制屏幕亮度,我知道 OLED 屏幕存在多年前的问题,尽管如此,我认为此时它已经解决了。戴尔通过终端提供了一种临时解决方法,但不太实用:

https://www.dell.com/support/kbdoc/en-uk/000129708/can-t-change-the-oled-s-brightness-on-precision-xps-systems-once-you-ve-installed-ubuntu-linux

有什么建议可以解决这个问题吗?谢谢

答案1

我创建了一个脚本,使您能够使用建议的戴尔解决方案创建自定义键盘快捷键来调整屏幕亮度:

https://gist.github.com/lagerone/1568ea6fbb98fd90a3495f9e51e26c8c

您可能需要修改它,因为脚本假定笔记本电脑的屏幕名称是eDP-1。运行xrandr以找出您的屏幕名称并相应地修改此行:

subprocess.run(["xrandr", "--output", "eDP-1", "--brightness", str(adjusted_level)])

以下是完整脚本:

#!/usr/bin/python3

import logging
import os
import subprocess
import sys
from typing import Literal

logging.basicConfig(level=logging.DEBUG)

FILE_PATH = os.path.join(
    os.path.dirname(os.path.realpath(__file__)), ".screen-brightness"
)


def read_current_level() -> float:
    if not os.path.isfile(FILE_PATH):
        return 1
    with open(
        file=FILE_PATH,
        mode="r",
        encoding="utf-8",
    ) as file:
        current_level = file.readline().strip()
        return float(current_level)


def save_level(level: float) -> None:
    with open(
        file=FILE_PATH,
        mode="w",
        encoding="utf-8",
    ) as file:
        file.write(str(level))


def adjust_level(method: Literal["up", "down"]) -> None:
    adjuster = 0.05 if method == "up" else -0.05
    current_level = read_current_level()
    adjusted_level = current_level + adjuster
    if adjusted_level > 1:
        adjusted_level = 1
    if adjusted_level < 0.2:
        adjusted_level = 0.2
    logging.debug(f"Setting screen brightness to {adjusted_level}.")
    subprocess.run(["xrandr", "--output", "eDP-1", "--brightness", str(adjusted_level)])
    save_level(level=adjusted_level)


if __name__ == "__main__":
    METHOD = sys.argv[1] if len(sys.argv) > 1 else "up"
    adjust_level(method=METHOD)

答案2

我的 Precision 5550 破电脑也遇到了同样的问题,它与 XPS 9500 几乎相同。在最新的 Fedora 38 和最新的 1.22 BIOS 中,我的亮度键可以正常工作。这是内核 6.2.12-300.fc38.x86_64,因此,如果使用 Ubuntu 上的最新内核和最新的 BIOS,它很可能也可以在 9510 上正常工作。

答案3

访问監視器亮度!!我的笔记本电脑的屏幕也是 OLED。我编写了一个连接背光值的代码,例如背光条(亮度键)。

監視器亮度

自动启动安装

git clone https://github.com/tw-yshuang/monitor-brightness.git
cd ./monitor-brightness
sudo make

如果你使用make来安装,它可以在你下次登录时自动启动。

相关内容