주간에 따라 초기 시작 배경 밝기 설정


8

Acer Aspire E5-773G 노트북에서 Ubuntu 16.04를 실행합니다. 불행히도 로그인 화면에서 밝기 기능 키를 사용할 수 없으므로 비밀번호를 입력하고 로그인 한 후 화면 백라이트 밝기를 변경할 수있는 첫 번째 순간입니다.

기본적으로 Ubuntu는 마지막 종료시 설정된 밝기 수준으로 부팅되지만이 방법은 유용하지 않습니다. 예를 들어 야간에 5 % 정도의 밝기 수준으로 밤 늦게 종료 한 다음 다음 날 다시 시작합니다. 모든 것을 편안하게 보려면 최소 50 %의 밝기 수준이 필요합니다. 다른 방법으로, 낮에 80 %의 밝기로 종료하고 저녁에 부팅하면 조명에 거의 눈이 멀게됩니다 ...

현재 낮에 따라 밝기 수준으로 부팅하도록 Ubuntu를 구성하려면 어떻게해야합니까? 22:00에서 06:00 사이의 10 % 밝기, 10:00에서 16:00 사이의 60 % 밝기 및 30 % 사이의 밝기와 같은 것을 원합니다. 쉽게 구성 할 수있는 한 커브를 부드럽게하는 것이 좋습니다. 또는 현지 일몰 / 일출 시간을 기준으로 설정하는 방법을 찾으면 큰 보너스가 될 것입니다. :)

이러한 규칙에 따라 밝기를 수정하는 것은 부팅 중 또는 선택적으로 일시 중지 상태에서 깨어날 때만 수행해야합니다. 작업하는 동안 밝기가 자동으로 변경되지 않을 수 있습니다.


14.14에서 16.04로 처음 변환했을 때 systemd가 14.04가 항상 맹렬하게 진행되어 수동으로 변경해야했기 때문에 안과 의사의 꿈이었던 마지막 강모를 설정 한 것으로 나타났습니다. 여러 구성이 저장된 곳에서 무언가를 리깅 한 다음 시간을 기준으로 설정할 수 있다고 생각합니다. "현지 일몰 / 일출 시간"을 묻는 것 외에도 "흐린 대 맑은"을 요청할 수도 있습니다 :)
WinEunuuchs2Unix

이것은 방의 (또는 해변의 외부) 빛의 세기에 근거하여 그것을하는 데 도움이 될 것입니다 : () [ askubuntu.com/questions/23593/…
WinEunuuchs2Unix

일반적으로 사용하지 않는 웹캠에 테이프가 있습니다. 또한 일 년에 몇 번 값을 조정할 수 있으면 고정되고 구성 가능한 주간 시간을 기준으로 초기 밝기를 설정하는 것으로 충분합니다. 날씨에 의존하지 않는 것은 필요하지 않습니다.
바이트 사령관

그래, 나도 마스킹 테이프를 가지고있어 빅 브라더는 이미 너무 많이 알고 있습니다.
WinEunuuchs2Unix

xbacklight화면의 밝기를 설정하는 데 사용해 보셨습니까 ? 설치 후 xbacklight -set 1010 % 밝기 와 같습니다 . 그것이 작동하면 쉽게 cronjob 또는 이와 비슷한 것에 추가 될 수 있습니다.
Terrance

답변:


4

기본 아이디어 :

  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 설정 스크립트는 루트로 실행되며 시스템이 로그인 화면에 도달하면 스크립트가 실행되고 필요한 밝기를 설정합니다.

  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, 이름을 지정하고 각 파일에 대한 호출은 일관되어야합니다.


1
파이썬과 파급 효과를 모르지만 /opt/.time_brightness_values오후 11시에서 오전 4시 사이의 설정이 누락되어 있기 때문에 아마도 세부 사항입니다 . Byte의 어머니가 잠을 자기를 원하지만 취침 시간 규칙을 어길 수 있습니다.
WinEunuuchs2Unix

@ WinEunuuchs2Unix는 그저 예일뿐입니다. 그는 사용자 정의 시간 범위 및 백분율에 대한 파일을 구성 할 수 있습니다 :)
Sergiy Kolodyazhnyy

1

시선

Eyesome은 데몬으로 실행되고 24/7 대부분의 시간 동안 자고있는 bash 스크립트입니다. 하드웨어 인터페이스 및 xrandr의 소프트웨어 제어를 사용하여 최대 2 개의 다른 모니터를 통해 랩탑 디스플레이의 화면 밝기 (및 선택적으로 감마도)를 자동으로 조정합니다.

일출 (매일 인터넷에서 시간이 자동으로 획득 됨)에 따라 화면 밝기 (및 선택적으로 감마도)가 점차 조정됩니다. 점진적인 조정은 귀하가 정의하지만 120 분이 효과적입니다. 조정을 눈에 띄지 않게 유지하려면 조정 사이에 휴면 간격을 설정하십시오. 15 초에서 60 초 사이가 가장 좋으며 기본값은 60입니다.

일출 전환이 완료된 후 eyesome 데몬은 일출 전환이 시작될 때까지 여러 시간 동안 휴면 상태가됩니다. 일출 전 90 분을 사용하고 있지만 원하는 기간을 설정할 수 있습니다.

일출 전환과 반대로 일몰 전환은 점차적으로 화면 밝기를 낮추고 (선택적으로 감마도) 눈에 띄지 않습니다.

야간 전환 중에 감마가 증가하도록 정의 될 수 있습니다. 예를 들어, 적 감마는 눈의 피로를 줄이기 위해 낮에는 1.0, 밤에는 1.2로 정의 될 수 있습니다. 블루 감마는 낮에는 1.0으로, 밤에는 0.8로 정의되어 대신 감소합니다.

자원을 줄이기 위해 eyeome은 일몰과 일출 사이의 전체 기간을 수면합니다. 거주 지역과 연중 계절에 따라 평균 수면 시간은 12 시간입니다.

Eyesome Setup-메인 메뉴

시선을 구성하기 위해 기본 메뉴가 제공됩니다.

eyesome 메인 메뉴 .png

구성 편집-일반 탭

기본 메뉴에서 편집 버튼 을 클릭하면 처음에 아래와 같이 구성 편집 일반 탭이 나타납니다.

eyesome 구성 일반 tab.png

국가 / 도시 이름이 자동으로 나타납니다. 필요한 경우이를 대체 할 수 있습니다.

구성 편집-모니터 1 탭

위의 모니터 1 탭을 클릭하면 내 구성에서이 패널이 표시됩니다 (사용자 구성이 다를 수 있음).

eyesome-edit-configuration-monitor-1.png

이 설정들에 당황하지 마십시오. 대부분 눈을 통해 자동으로 얻습니다. 낮과 밤의 밝기 / 레벨을 설정해야합니다.

구성 편집-모니터 3 탭

모니터 3 탭을 클릭하면 구성에서이 패널이 표시됩니다 (사용자 패널과 다를 수 있음).

모니터 2 탭은 적응 형 밝기와 Smart OS를 갖춘 새로운 TV이므로 표시되지 않습니다. Eyesome에 의한 재정의는 필요하지 않습니다.

여기에 이미지 설명을 입력하십시오

eyeome을 설치 한 후 시스템에 다른 모니터를 연결하면 xrandr모니터 이름 을 입력해야 할 수도 있습니다 .

Eyesome Setup-5 초 테스트

주 메뉴에서 주간야간 버튼을 각각 클릭하여 주간야간 밝기 및 감마 설정을 5 초 동안 테스트 할 수 있습니다 . 구성 편집-일반 탭에서 테스트 기간을 5 초에서 최대 20 초로 변경할 수 있습니다.

5 초 야간 테스트는 다음과 같습니다.

eyesome 야간 테스트 .gif

비정상적인 이벤트 처리

업무 시간 전 아침에 화면이 어두워지면 노트북을 일시 중단한다고 가정합니다. 하늘에서 태양이 높을 때 퇴근 후 집에 와서 랩탑을 열 수 있습니다. 화면이 너무 어두워서 읽을 수 없습니다.

이 시나리오를 해결하기 위해 시스템 제어 파일이 제공됩니다.

  • /etc/systemd/system-sleep/systemd-wake-eyesome 제어 파일은 시스템이 일시 중단되거나 재개 될 때마다 호출됩니다.
  • 제어 파일은 bash 스크립트 /usr/local/bin/wake-eyesome.sh를 호출하여 밝기를 최대로 재설정 한 다음 일몰 전환까지 절전 모드로 전환합니다.

밤에는 외부 TV에서 영화를보고 더 잘 볼 수 있도록 랩톱 덮개를 닫습니다. Ubuntu / Lightdm / xrandr는 몇 초 후에 외부 TV를 최대 밝기로 재설정합니다. 당신의 눈을 사로 잡으십시오.

이 시나리오를 해결하기 위해 acpi 이벤트 제어 파일이 제공됩니다.

  • /etc/acpi/event/lid-event-eyesome 랩톱 뚜껑을 열거 나 닫을 때마다 제어 파일이 호출됩니다.
  • 제어 파일은 bash 스크립트 /etc/acpi/acpi-lid-eyesome.sh를 호출 하여 덮개 열기 및 닫기를 처리합니다.
  • eyesome bash 스크립트는 /usr/local/bin/wake-eyesome.sh야간 시청을 위해 밝기를 재설정 한 다음 일몰 전환까지 절전 모드로 전환합니다.

    일시 중지 / 닫기 / 테스트 밝기 / 전원 끄기 / 핫 플러그

요약

이 답변은 질문이 게시 된 날로부터 거의 2 년입니다. 2017 년 2 월에 삭제 된이 답변의 초기 버전이 있었는데 방금 삭제 취소하고 개정했습니다.

Eyesome은 https://github.com/WinEunuuchs2Unix/eyesome 에서 다운로드 할 수 있습니다.

이 프로그램은 2018 년 9 월에 출시되었으므로 문제를 발견하거나 개선 제안이 있으면 알려주십시오.

문서화 단계가 막 시작되었으므로 주저하지 말고 질문하십시오. 질문으로 인해 문서가 향상 될 수도 있습니다.


그것의 일부는 나중에 일광 시간을 기준으로 밝기를 설정하는 cron 시간별 bash 스크립트를 추가 할 때 WIP 답변입니다. 다른 부분은 게시 된 링크에서 일광 시간을 찾는 방법에 대한 질문에 답변하는 것입니다. 해당 링크를 Serg의 답변에 통합 할 수 있습니다. 그러나 모든 것이 작동하면 새로운 Q & A를 게시해야합니다. (SERG는 2 시간 전에 채팅 방에 우려를했다)
WinEunuuchs2Unix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.