Đặt độ sáng nền khởi động ban đầu tùy thuộc vào ban ngày


8

Tôi chạy Ubuntu 16.04 trên máy tính xách tay Acer Aspire E5-773G. Thật không may, tôi không thể sử dụng các phím chức năng độ sáng của mình trên màn hình đăng nhập, vì vậy khoảnh khắc đầu tiên khi tôi có thể thay đổi độ sáng đèn nền màn hình là sau khi nhập thành công mật khẩu và đăng nhập.

Theo mặc định, Ubuntu khởi động với mức độ sáng đã được đặt ở lần tắt máy cuối cùng, nhưng điều này không hữu ích lắm, ví dụ như đôi khi tôi tắt máy vào đêm khuya với mức độ sáng khoảng 5% và khởi động lại vào ngày hôm sau khi tôi sẽ cần một mức độ sáng ít nhất 50% để thoải mái nhìn mọi thứ. Mặt khác, nếu tôi tắt máy vào ban ngày với độ sáng có thể là 80% và khởi động nó vào buổi tối, tôi gần như bị mù bởi đèn ...

Làm cách nào tôi có thể định cấu hình Ubuntu để khởi động với mức độ sáng tùy thuộc vào ban ngày hiện tại? Tôi muốn một cái gì đó như độ sáng 10% từ 22:00 đến 06:00, độ sáng 60% từ 10:00 đến 16:00 và độ sáng 30% ở giữa. Làm mịn đường cong là được, miễn là nó vẫn dễ dàng cấu hình. Ngoài ra, nếu bạn tìm cách đặt nó dựa trên thời gian hoàng hôn / bình minh địa phương, đó sẽ là một phần thưởng lớn. :)

Sửa đổi độ sáng theo các quy tắc này chỉ nên diễn ra trong khi khởi động hoặc tùy chọn khi thức dậy sau khi tạm ngưng. Nó có thể không tự động thay đổi độ sáng trong khi tôi đang làm việc.


Khi tôi lần đầu tiên chuyển đổi từ 14.04 sang 16.04, tôi nhận thấy systemd đang thiết lập độ sáng cuối cùng là giấc mơ của bác sĩ mắt vì 14.04 luôn nổ tung hoàn toàn và bạn phải tự thay đổi nó. Tôi tưởng tượng một cái gì đó có thể được gian lận trong đó nhiều cấu hình được lưu trữ, và sau đó được thiết lập dựa trên thời gian trong ngày. Bên cạnh việc yêu cầu "thời gian hoàng hôn / bình minh địa phương", bạn cũng có thể yêu cầu "mây và nắng" :)
WinEunuuchs2Unix

Điều này sẽ rất hữu ích cho làm việc đó dựa trên cường độ ánh sáng trong phòng (hoặc bên ngoài trên bãi biển): () [ askubuntu.com/questions/23593/...
WinEunuuchs2Unix

Tôi đã có băng từ webcam của tôi như tôi thường không sử dụng nó. Ngoài ra, cài đặt độ sáng ban đầu dựa trên số giờ ban ngày cố định, có thể định cấu hình là hoàn toàn đủ nếu tôi có thể điều chỉnh các giá trị một vài lần trong năm. Không có công cụ phụ thuộc thời tiết, đó là không cần thiết.
Chỉ huy Byte

Vâng tôi cũng có mặt nạ băng trên của tôi. Anh lớn biết quá nhiều rồi.
WinEunuuchs2Unix

Bạn đã thử sử dụng xbacklightđể thiết lập độ sáng của màn hình chưa? Sau khi được cài đặt, nó sẽ giống như xbacklight -set 10độ sáng 10%. Nếu nó hoạt động, nó có thể dễ dàng được thêm vào một cronjob hoặc một cái gì đó tương tự.
Terrance

Câu trả lời:


4

Ý kiến ​​cơ bản:

  1. Lưu tập tin cấu hình /opt/.time_brightness_values:

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

    Hãy chú ý đến các giá trị được trích dẫn và dấu phẩy. Cột đầu tiên với các giá trị được trích dẫn biểu thị phạm vi giờ ở định dạng 24 giờ, cột thứ hai là tỷ lệ phần trăm. Ví dụ: nếu bạn khởi động từ 5 đến 7 giờ, độ sáng của bạn sẽ được đặt thành 25 phần trăm. Nếu bạn khởi động từ 8 đến 16 giờ, nó sẽ là 50 phần trăm.

  2. Lưu tập lệnh bên dưới dưới dạng /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. Đặt greeter-setup-script=/opt/set_timed_brightness.pytrong /etc/lightdm/lightdm.conftệp. Tập lệnh thiết lập lời chào chạy dưới quyền root và khi hệ thống của bạn hiển thị màn hình đăng nhập, tập lệnh sẽ chạy và đặt độ sáng bạn cần.

  4. Khi thức dậy sau khi đình chỉ, hãy tạo /etc/pm/sleep.d/set_timed_brightness.sh:

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

Hãy nhớ rằng : tất cả các quy tắc tiêu chuẩn được áp dụng, các tập lệnh phải được thực thi với chmod +x, đặt tên và gọi cho mỗi tệp phải nhất quán.


1
Một chi tiết nhỏ có lẽ vì tôi không biết python và các phân nhánh nhưng /opt/.time_brightness_valuesthiếu cài đặt từ 11 giờ tối đến 4 giờ sáng. Tôi biết mẹ của Byte muốn anh ta ngủ sau đó nhưng anh ta có thể phá vỡ quy tắc giờ đi ngủ.
WinEunuuchs2Unix

@ WinEunuuchs2Unix chỉ là một ví dụ. Anh ta có thể định cấu hình tệp cho phạm vi thời gian và tỷ lệ phần trăm tùy chỉnh :)
Sergiy Kolodyazhnyy

1

đẹp mắt

Eyemme là một kịch bản bash chạy như một deamon và ngủ hầu hết thời gian 24/7. Nó tự động điều chỉnh độ sáng màn hình (và cả gamma tùy chọn) cho màn hình máy tính xách tay của bạn thông qua giao diện phần cứng và tối đa hai màn hình khác sử dụng điều khiển phần mềm của xrandr.

Khi mặt trời mọc (thời gian được lấy tự động từ internet mỗi ngày), độ sáng màn hình của bạn (và cả gamma tùy chọn nữa) được điều chỉnh dần dần. Điều chỉnh dần dần được xác định bởi bạn, nhưng 120 phút làm việc cho tôi. Để giữ cho các điều chỉnh không được chú ý, hãy đặt khoảng thời gian ngủ giữa các lần điều chỉnh. Bất cứ nơi nào trong khoảng từ 15 đến 60 giây có lẽ là tốt nhất và mặc định là 60.

Sau khi quá trình chuyển đổi mặt trời mọc hoàn tất, daemon đẹp mắt ngủ nhiều giờ cho đến khi quá trình chuyển đổi mặt trời mọc bắt đầu. Tôi đang sử dụng 90 phút trước khi mặt trời mọc nhưng bạn có thể đặt bất kỳ khoảng thời gian nào bạn muốn.

Ngược lại với quá trình chuyển đổi mặt trời mọc, quá trình chuyển đổi hoàng hôn giảm dần độ sáng màn hình (và cả gamma tùy chọn nữa) nên không thể nhận thấy.

Lưu ý rằng gamma chuyển đổi vào ban đêm có thể được xác định để tăng. Ví dụ, gamma đỏ có thể được định nghĩa là 1.0 vào ban ngày và 1.2 vào ban đêm để giảm mỏi mắt. Gamma màu xanh lần lượt có thể được định nghĩa là 1.0 vào ban ngày và .8 vào ban đêm nên thay vào đó nó sẽ giảm.

Để giảm tài nguyên, mắt đẹp ngủ toàn bộ thời gian giữa hoàng hôn và bình minh. Tùy thuộc vào nơi bạn sống và mùa trong năm, giấc ngủ trung bình sẽ là 12 giờ.

Cài đặt Eygie - Menu chính

Để cấu hình đẹp mắt, một menu chính được cung cấp:

menu chính đẹp mắt.png

Chỉnh sửa cấu hình - tab Chung

Khi bạn nhấp vào nút Chỉnh sửa từ menu chính, tab chỉnh sửa cấu hình chung ban đầu sẽ xuất hiện như bên dưới.

cấu hình đẹp mắt chung tab.png

Tên quốc gia / thành phố của bạn sẽ tự động xuất hiện. Nếu cần bạn có thể ghi đè lên nó.

Chỉnh sửa cấu hình - Màn hình 1 tab

Nhấp vào tab Monitor 1 ở trên sẽ hiển thị bảng này trong cấu hình của tôi (của bạn có thể khác):

eyesome-edit-configure-Monitor-1.png

Đừng nản chí bởi những cài đặt này, phần lớn chúng tự động thu được bởi mắt. Bạn sẽ cần phải thiết lập độ sáng / ban ngày và ban đêm.

Chỉnh sửa cấu hình - Màn hình 3 tab

Nhấp vào Tab Monitor 3 cho thấy bảng này trong cấu hình của tôi (của bạn có thể khác):

Màn hình 2 Tab không được hiển thị vì đây là TV mới có độ sáng thích ứng và Hệ điều hành thông minh. Nó không yêu cầu ghi đè bằng Eygie.

nhập mô tả hình ảnh ở đây

Nếu sau khi cài đặt xong, bạn gắn một màn hình khác vào hệ thống của mình, bạn có thể phải nhập xrandrtên màn hình.

Cài đặt Eygie - Thử nghiệm 5 giây

Từ menu chính, bạn có thể kiểm tra cài đặt gamma và độ sáng ban ngày và ban đêm trong 5 giây bằng cách nhấp vào nút Ban ngày và Ban đêm tương ứng. Bạn có thể thay đổi thời lượng thử nghiệm từ 5 giây lên đến 20 giây từ Chỉnh sửa cấu hình - Tab chung.

Đây là bài kiểm tra Ban đêm 5 giây trông như thế nào:

thử nghiệm ban đêm đẹp mắt.gif

Xử lý sự kiện bất thường

Giả sử bạn treo máy tính xách tay của bạn khi trời sáng trước khi làm việc và màn hình hoàn toàn mờ. Bạn trở về nhà sau giờ làm việc khi mặt trời lên cao và mở máy tính xách tay của bạn. Màn hình quá mờ bạn không thể đọc được.

Để giải quyết tình huống này, một tệp điều khiển systemd được cung cấp:

  • /etc/systemd/system-sleep/systemd-wake-eyesome tập tin điều khiển được gọi bất cứ khi nào hệ thống tạm dừng hoặc tiếp tục.
  • Tệp điều khiển gọi tập lệnh bash /usr/local/bin/wake-eyesome.shđể thiết lập lại độ sáng đầy đủ và sau đó ngủ cho đến khi chuyển cảnh hoàng hôn.

Bạn đang xem một bộ phim trên TV bên ngoài vào ban đêm và đóng nắp máy tính xách tay của bạn để xem tốt hơn. Ubuntu / Lightdm / xrandr mất vài giây và sau đó đặt lại TV bên ngoài của bạn để có độ sáng đầy đủ. NGOÀI vào mắt bạn.

Để giải quyết tình huống này, một tệp điều khiển sự kiện acpi được cung cấp:

  • /etc/acpi/event/lid-event-eyesome tập tin điều khiển được gọi bất cứ khi nào nắp máy tính xách tay được mở hoặc đóng.
  • Tệp điều khiển gọi tập lệnh bash /etc/acpi/acpi-lid-eyesome.shđể xử lý việc mở và đóng nắp.
  • Đổi lại, kịch bản bash đẹp mắt gọi /usr/local/bin/wake-eyesome.shđể thiết lập lại độ sáng để xem ban đêm và sau đó ngủ cho đến khi hoàng hôn chuyển.

    Tạm dừng / Đóng nắp / Kiểm tra độ sáng / tắt nguồn / cắm nóng

Tóm lược

Câu trả lời này là gần hai năm cho đến ngày câu hỏi được đăng. Có một phiên bản đầu của câu trả lời này đã bị xóa vào tháng 2 năm 2017 mà tôi vừa mới xóa và sửa đổi.

Có thể tải xuống Eygie từ: https://github.com/WinEunuuchs2Unix/eygie

Chương trình này vừa được phát hành vào tháng 9 năm 2018 vì vậy vui lòng cho tôi biết nếu bạn tìm thấy bất kỳ vấn đề nào hoặc có đề xuất cải tiến.

Giai đoạn tài liệu chỉ mới bắt đầu nên đừng ngần ngại hỏi bất kỳ câu hỏi nào. Câu hỏi của bạn thậm chí có thể dẫn đến cải thiện tài liệu.


Một phần của câu trả lời là WIP vì tôi sẽ thêm tập lệnh bash hàng giờ sau đó để đặt độ sáng dựa trên giờ ban ngày. Phần khác là để trả lời câu hỏi của bạn về cách có thể tìm thấy giờ ban ngày trong liên kết được đăng. Bạn có thể tích hợp liên kết đó vào câu trả lời của Serg. Nhưng có lẽ khi tất cả đều hoạt động tôi nên đăng một câu hỏi và trả lời mới là đề xuất của bạn ??? (Serg có mối quan tâm trong phòng trò chuyện 1/2 giờ trước)
WinEunuuchs2Unix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.