跳转到主要内容

自动调整Linux显示亮度

项目描述

auto-adjust-display-brightness 程序会根据外部光线是明亮还是黑暗自动调整Linux计算机显示器的亮度。要使其工作,您需要创建一个配置文件,定义您的物理位置(这是它确定外部光线是明亮还是黑暗的方法)以及如何管理哪个显示器的亮度(这样它就知道如何最好地控制亮度)。

我是一个计算机程序员,有时会工作到深夜,因为这样可以 提高专注力。在这样的夜晚 / 深夜,一个反复出现的烦恼是,我必须手动调整笔记本电脑屏幕和连接到笔记本电脑的外部显示器的亮度,以避免不必要的 眼睛疲劳。我多年来一直在使用 xflux(它在夜间从计算机显示器中去除蓝光),但我发现这并不能降低我的MacBook Air的背光亮度,而这对于避免眼睛疲劳是至关重要的。

安装

auto-adjust-display-brightness 程序是用Python编写的,可在 PyPI 上找到,这意味着安装应该非常简单

$ pip install auto-adjust-display-brightness

实际上有很多种方法可以安装Python包(例如,用户的站点包目录虚拟环境或直接安装到系统范围内),我并不打算在这里展开讨论,所以如果你感到害怕,请在返回这些说明之前了解一下你的选项 ;-).

入门

auto-adjust-display-brightness 程序需要一个配置文件来定义你的物理位置(这是它判断外面是白天还是晚上的方法),以及如何管理显示器的亮度(这样它就知道如何控制亮度)。以下是我目前正在使用的配置文件示例

# My physical location. I determined these values using Google Maps.
[location]
latitude = 53.240534499999995
longitude = 6.614897599999949
elevation = -2

# The laptop screen of my MacBook Air. This controls the physical backlight
# which is the best way to reduce the brightness (it also reduces power
# consumption :-).
[display:MacBook Air]
min-brightness = 7
max-brightness = 70
sys-directory = /sys/class/backlight/acpi_video0

# My external monitor connected via a display port to DVI adapter. I haven't
# found any way to configure the physical backlight of this monitor so I'm
# resorting to a software only modification here (better than nothing).
[display:ASUS monitor]
min-brightness = 30
max-brightness = 60
output-name = HDMI1

配置文件是从以下位置加载的

  • ~/.auto-adjust-display-brightness.ini

  • /etc/auto-adjust-display-brightness.ini

配置文件的结构如下

  • [location] 部分有三个项目,所有这些项目都是必需的(latitudelongitudeelevation)。一些查找正确值的方法提示

    • 你可以在谷歌地图上找到你的纬度和经度。

    • 找到你的海拔高度有点棘手:谷歌地图有相关信息,但没有公开。幸运的是,有一打在线工具可以轻松找到你的海拔。

  • 每个 [display:...] 部分定义了一个计算机显示器,其亮度应由程序控制

    • display: 标签后的标签是显示器的名称(它在日志输出中使用,但并不重要,尽管它当然应该是唯一的)。

    • 显示器可以有配置的最小亮度(min-brightness)和最大亮度(max-brightness)。这些项的默认值分别为0%和100%(值是百分比)。

    • 目前支持两种类型的亮度控制

      1. 笔记本电脑屏幕背光的物理亮度。这使用Linux sysfs 虚拟文件系统的 /sys/class/backlight 接口来控制背光亮度。唯一必需的项目是 sys-directory,它应该包含控制你笔记本电脑屏幕背光亮度的目录的绝对路径名(你需要自己弄清楚)。

      2. 使用 xrandr 的任何显示器的软件亮度,以应用仅软件修改的显示亮度。这种方法的主要优点是它总是会工作。缺点是它不会降低屏幕的背光。换句话说,如果你可以使另一种类型的亮度控制为你的显示器工作,这可能是更好的选择。

通过cron运行

要实际调整你的显示器亮度而无需手动运行任何命令,你可以从cron计划中运行 auto-adjust-display-brightness。以下是我目前正在使用的

# /etc/cron.d/auto-adjust-display-brightness:
# Crontab entries for automatic adjustment of display brightness.

DISPLAY=:0
HOME=/home/peter
VIRTUAL_ENV=/home/peter/.virtualenvs/auto-adjust-display-brightness

@reboot root $VIRTUAL_ENV/bin/auto-adjust-display-brightness --force 1>/dev/null 2>&1
* * * * * root $VIRTUAL_ENV/bin/auto-adjust-display-brightness 1>/dev/null 2>&1

有关此crontab的一些说明

  • @reboot 行负责在启动后立即运行程序,以避免显示亮度从错误的状态开始,并在启动笔记本电脑后的几分钟内逐渐增加或减少。当程序检测到它在系统启动后不到60秒运行时,它会立即调整亮度而不是逐渐调整。

  • 命令以 root 运行,以便程序具有写入 /sys/class/backlight/acpi_video0(以控制我的MacBook Air的物理背光)所需的权限。

  • DISPLAY变量使xrandr即使在非GUI环境中运行也能工作。

  • HOME变量使auto-adjust-display-brightness能够在不将其移动到/etc/auto-adjust-display-brightness.ini的情况下找到我的配置文件。这使我能够在我的私有dotfiles git仓库中跟踪配置文件 :-)。

联系

auto-adjust-display-brightness的最新版本可在PyPI和GitHub上找到。[a href="https://pypi.python.org/pypi/auto-adjust-display-brightness" rel="nofollow">PyPIGitHub。有关错误报告,请在GitHub上创建问题。如果您有任何问题,建议等,请随时通过电子邮件发送给我[a href="mailto:peter%40peterodding.com" rel="nofollow">peter@peterodding.com。

许可证

本软件受MIT许可证许可。

© 2016 Peter Odding。

项目详情


下载文件

下载适用于您平台的自定义文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

auto-adjust-display-brightness-1.3.1.tar.gz (15.3 kB 查看哈希值)

上传时间

由支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面