Saya menjalankan Ubuntu 16.04 pada notebook Acer Aspire E5-773G. Sayangnya, saya tidak dapat menggunakan tombol fungsi kecerahan di layar masuk, jadi saat pertama saya dapat mengubah kecerahan lampu latar layar adalah setelah berhasil memasukkan kata sandi dan masuk.
Secara default, Ubuntu melakukan booting dengan tingkat kecerahan yang telah disetel pada shutdown terakhir, tetapi ini tidak terlalu berguna seperti mis. kadang-kadang saya mematikan larut malam dengan tingkat kecerahan sekitar 5% dan memulainya lagi keesokan harinya di mana saya membutuhkan tingkat kecerahan minimal 50% untuk melihat semuanya dengan nyaman. Sebaliknya, jika saya mematikan di siang hari dengan kecerahan mungkin 80% dan menyalakannya di malam hari, saya hampir dibutakan oleh lampu…
Bagaimana saya bisa mengkonfigurasi Ubuntu untuk boot dengan tingkat kecerahan tergantung pada siang hari saat ini? Saya ingin sesuatu seperti kecerahan 10% dari 22:00 hingga 06:00, kecerahan 60% dari 10:00 hingga 16:00 dan kecerahan 30% di antaranya. Menghaluskan kurva tidak apa-apa, asalkan tetap mudah dikonfigurasi. Atau, jika Anda menemukan cara untuk mengaturnya berdasarkan waktu matahari terbenam/terbit setempat, itu akan menjadi bonus besar.
Memodifikasi kecerahan menurut aturan ini hanya boleh dilakukan saat boot atau opsional saat bangun dari penangguhan. Ini mungkin tidak secara otomatis mengubah kecerahan saat saya bekerja.
Jawaban Terbaik
Ide dasar:
-
Simpan file konfigurasi
/opt/.time_brightness_values
:{ "5,7": 0.25, "8,16": 0.50, "17,22": 0.75 }
Perhatikan nilai yang dikutip dan koma. Kolom pertama dengan nilai kutipan mewakili rentang jam dalam format 24 jam, kolom kedua adalah persentase. Misalnya, jika Anda mem-boot dari jam 5 hingga 7, kecerahan Anda akan diatur ke 25 persen. Jika Anda mem-boot dari jam 8 hingga 16, itu akan menjadi 50 persen.
-
Simpan skrip di bawah ini sebagai
/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()
-
Setel
greeter-setup-script=/opt/set_timed_brightness.py
di/etc/lightdm/lightdm.conf
mengajukan. Skrip penyiapan penyambut berjalan sebagai root dan setelah sistem Anda membuka layar login, skrip akan berjalan dan mengatur kecerahan yang Anda butuhkan. -
Sejauh bangun dari penangguhan, buat
/etc/pm/sleep.d/set_timed_brightness.sh
:#!/bin/bash case "${1}" in resume|thaw) python3 /opt/set_timed_brightness.py ;; esac
Ingat :semua aturan standar berlaku, skrip harus dibuat dapat dieksekusi dengan chmod +x
, penamaan dan panggilan ke setiap file harus konsisten.