AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 829814
Accepted
Byte Commander
Byte Commander
Asked: 2016-09-27 02:47:22 +0800 CST2016-09-27 02:47:22 +0800 CST 2016-09-27 02:47:22 +0800 CST

根据白天设置初始启动背景亮度

  • 772

我在 Acer Aspire E5-773G 笔记本上运行 Ubuntu 16.04。不幸的是,我无法在登录屏幕上使用我的亮度功能键,所以我能够更改屏幕背光亮度的第一时间是在成功输入密码并登录后。

默认情况下,Ubuntu 以上次关机时设置的亮度级别启动,但这并不是很有用,例如有时我在深夜以 5% 左右的亮度级别关闭,然后在第二天再次启动时,我需要至少 50% 的亮度水平才能舒适地看到一切。反过来说,如果我白天以大约 80% 的亮度关闭并在晚上启动它,我几乎被灯光弄瞎了......

如何配置 Ubuntu 以根据当前白天的亮度级别启动?我想要从 22:00 到 06:00 的亮度为 10%,从 10:00 到 16:00 的亮度为 60%,以及介于两者之间的亮度为 30%。平滑曲线是可以的,只要它易于配置。或者,如果您找到一种根据当地日落/日出时间设置它的方法,那将是一个很大的好处。:)

根据这些规则修改亮度只能在启动期间或从挂起唤醒时进行。我工作时它可能不会自动改变亮度。

boot
  • 2 2 个回答
  • 1240 Views

2 个回答

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2016-09-30T15:14:54+08:002016-09-30T15:14:54+08:00

    基本思路:

    1. 保存配置文件/opt/.time_brightness_values:

      {
        "5,7": 0.25,
        "8,16": 0.50,
        "17,22": 0.75
      }
      

      注意引用的值和逗号。带引号的第一列表示 24 小时格式的小时范围,第二列是百分比。例如,如果您从 5 点到 7 点启动,您的亮度将设置为 25%。如果您从 8 点到 16 点启动,它将是 50%。

    2. 将下面的脚本另存为/opt/set_timed_brightness.py

      #!/usr/bin/env python3
      from __future__ import print_function
      from collections import OrderedDict
      import json
      import time
      import sys
      import os
      
      def read_config():
          dir = '/opt'
          filename = '.time_brightness_values'
          conf_file = os.path.join(dir,filename)
          brightness = None
          with open(conf_file) as f:
               try:
                    data = json.load(f)
                    data = OrderedDict(sorted(data.items()))
               except Exception as e:
                    print(e)
                    sys.exit(1)
               else:
                    keys = [ key.split(',') for key,value in data.items()]
                    keys.sort()
      
                    hour =  time.localtime().tm_hour
                    for key in keys:
                        if int(key[0]) <= hour and int(key[1]) >= hour:
                           brightness = data[','.join(key)]  
      
          return brightness
      
      def set_percentage(pcent):
          dir = os.listdir('/sys/class/backlight')
          dev = os.path.join('/sys/class/backlight',dir[0])   
      
          max = None
          with open(os.path.join(dev,'max_brightness')) as f:
              max = f.readline().strip()
      
          new = int(float(max)*pcent)
          new = str(new)
          with open(os.path.join(dev,'brightness'),'w') as f:
               f.write(new)
      
      def main():
          percentage = read_config()
          if percentage:
              set_percentage(percentage)
      
      
      if __name__ == '__main__':
          main()
      
    3. greeter-setup-script=/opt/set_timed_brightness.py在/etc/lightdm/lightdm.conf文件中设置。greeter 设置脚本以 root 身份运行,一旦您的系统进入登录屏幕,该脚本将运行并设置您需要的亮度。

    4. 就从挂起中醒来而言,创建/etc/pm/sleep.d/set_timed_brightness.sh:

      #!/bin/bash
      
      case "${1}" in
              resume|thaw) python3 /opt/set_timed_brightness.py
          ;;
      esac
      

    请记住:所有标准规则都适用,脚本必须是可执行的chmod +x,每个文件的命名和调用必须一致。

    • 4
  2. WinEunuuchs2Unix
    2017-02-26T10:52:40+08:002017-02-26T10:52:40+08:00

    好看

    Eyesome 是一个 bash 脚本,作为守护进程运行,大部分时间 24/7 都在休眠。xrandr它通过硬件接口自动调整笔记本电脑显示器的屏幕亮度(也可以选择伽玛),并使用软件控制最多两个其他显示器。

    日出时(每天从互联网上自动获取时间),您的屏幕亮度和伽玛(即色温、色调或色调)会逐渐调整。在日落之前逐渐调整夜间设置。在这两个时期之间,他们眼花缭乱的守护进程会睡好几个小时。

    eyesome 与 Redshift、Night Light 和类似产品的区别在于能够同时控制具有独特设置的三台显示器。除了色温之外,还值得注意的是 eyesome 控制亮度(硬件和软件)。

    Eyesome 设置 - 主菜单

    当你运行sudo eyesome-cfg.sh这个主菜单时出现:

    漂亮的主菜单.png

    编辑配置 - 常规选项卡

    当您从主菜单单击编辑按钮时,编辑配置常规选项卡最初会显示如下所示。

    眼花缭乱的配置通用tab.png

    如果“亮度更新间隔”太短会导致硬件亮度调整太小,一些笔记本电脑会忽略。如果您的屏幕在日落前没有变暗,请将时间间隔增加到 60 秒或更长。您可以在“监视器”选项卡上查看当前亮度级别的变化。例如,如果您看到每个更新间隔的级别变化小于 21,则对于 Dell Alienware 17R3 笔记本电脑来说太短了。然而,在戴尔 Inspiron 17" 7720 SE 笔记本电脑上,亮度变化 1 效果很好。

    您的“国家/城市名称”应该会自动出现。如有必要,您可以覆盖它。

    “观看外接显示器插入/电源切换”复选框也适用于某些应用程序调用重置xrandr为 100% 亮度和伽玛的色彩管理 dbus 守护程序的随机时间。除非有充分的理由不这样做,否则您应该选中此框。

    编辑配置 - 监视器 1 选项卡

    单击 Monitor 1 选项卡会在我的配置中显示此面板(您的配置可能不同):

    eyesome-edit-configuration-monitor-1.png

    不要被这些设置吓倒,因为大多数都是由 eyesome 自动获得的。不过,您将需要设置白天和夜间的亮度/级别。

    如果红色、绿色和蓝色的 gamma 值令人生畏,您可以稍后使用主菜单中的Override按钮对其进行微调。在那里,您可以访问色温滑块控件,其中 3500 是典型的夜间设置,6500 是典型的白天设置。红色、绿色和蓝色通道的典型白天设置为 1.0,这是每个系统的默认设置。

    编辑配置 - 监视器 3 选项卡

    单击监视器 3 选项卡会在我的配置中显示此面板(您的可能不同):

    显示器 2 选项卡未显示,因为它是具有自适应亮度和 Smart OS 的新电视。它不需要 Eyesome 覆盖。

    在此处输入图像描述

    当安装 eyesome 时,大部分配置会自动创建。如果稍后您连接不同的显示器,您可能需要输入xrandr显示器名称。

    Eyesome 设置 - 5 秒测试

    在主菜单中,您可以通过分别单击Daytime和Nighttime按钮来测试您的白天和夜间亮度和伽马设置 5 秒。您可以从编辑配置 - 常规选项卡中将测试持续时间从 1 秒更改为 20 秒。

    这是 5 秒夜间测试的样子:

    令人眼花缭乱的夜间测试.gif

    在现实生活中,如果您在白天运行测试,您会看到屏幕明显变暗。用于制作上述 .gif 动画的屏幕录像机无法记录亮度或色温(伽马)变化。

    漂亮的覆盖

    当您从主菜单单击覆盖按钮时,将出现此窗口:

    令人眼花缭乱的覆盖主窗口.png

    毫无疑问,您的第一步是使用此窗口按钮单击帮助:

    漂亮的覆盖帮助按钮.png

    假设我们点击Get按钮并选择 Monitor 3, Nighttime setting:

    令人眼花缭乱的覆盖监视器3 nightime.png

    现在我们在内存中有默认值,单击颜色按钮:

    eyesome 将色温覆盖为 gamma.png

    抓住滑块并将其向左移动,以便在夜间进行更暖/偏红的颜色设置。向右移动滑块可在白天设置较冷/偏蓝的颜色。如果您改变主意,请单击转换按钮计算红色、绿色、蓝色伽玛通道或退出按钮。

    异常事件处理

    假设您在早上上班前暂停了笔记本电脑,并且屏幕完全昏暗。当太阳高高挂在天空时,您下班回家并打开笔记本电脑。现在屏幕太暗了,很难看清。

    为了解决这种情况,提供了一个 systemd 控制文件:

    • /etc/systemd/system-sleep/systemd-wake-eyesome每当系统挂起或恢复时,都会调用控制文件。
    • 控制文件调用 bash 脚本/usr/local/bin/wake-eyesome.sh根据时间设置亮度,然后休眠直到下一个过渡期。

    您晚上在外接电视上看电影,然后合上笔记本电脑盖以更好地观看。Ubuntu / Lightdm / xrandr 需要几秒钟,然后将您的外部电视重置为全亮度。哎哟你的眼睛。

    为了解决这种情况,提供了一个 acpi 事件控制文件:

    • /etc/acpi/event/lid-event-eyesome每当打开或关闭笔记本电脑盖时都会调用控制文件。
    • 控制文件调用 bash 脚本/etc/acpi/acpi-lid-eyesome.sh来处理盖子的打开和关闭。
    • 反过来,令人眼花缭乱的 bash 脚本调用/usr/local/bin/wake-eyesome.sh以重置夜间观看的亮度,然后休眠直到日落过渡。

    概括

    这个答案是问题发布后的将近两年。这个答案的早期版本在 2017 年 2 月被删除,我刚刚取消删除和修改。

    Eyesome 可以从:https ://github.com/WinEunuuchs2Unix/eyesome 下载

    Eyesome 于 2018 年 9 月发布。然后于 2020 年 6 月进行了修订,具有色温功能,以减轻进入红、绿和蓝伽马通道的负担。计划进行更多更改以手动输入日出和日落时间。

    • 1

相关问题

  • grub 菜单中的“恢复”选项是什么?

  • 用户如何避免在启动时输入密码?[关闭]

  • 更改 Wubi 的启动顺序

  • 如何在 Ubuntu 启动时显示或隐藏启动消息?

  • 如何避免启动时出现“S to Skip”消息?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve