ปรับความสว่างของหน้าจอโดยอัตโนมัติตามพระอาทิตย์ขึ้นและพระอาทิตย์ตก


10

มีคำถามและคำตอบที่คล้ายกันในAsk Ubuntuที่ชี้ไปที่โซลูชันเหล่านี้:

แต่พวกเขาต้องการรายการเวลาพระอาทิตย์ขึ้นและพระอาทิตย์ตกด้วยตนเองหรือเพียงแค่ปรับความสมดุลของสีและเพิ่มสีแดงในเวลากลางคืน

ฉันกำลังมองหาวิธีการแก้ปัญหาที่ได้รับเวลาพระอาทิตย์ขึ้นและตกโดยอัตโนมัติในแต่ละวันและปรับความสว่างหน้าจอทางกายภาพ นอกจากนี้ฉันต้องการผลการเปลี่ยนแปลงในช่วงเวลา 60 ถึง 120 นาทีดังนั้นฉันจึงไม่สังเกตเห็นการเปลี่ยนแปลงการแสดงผล

การกำหนดค่าใหม่ในวันที่มีเมฆมัว (หรี่ข้างนอก) หรือเมื่อดวงอาทิตย์เกิดขึ้นระหว่างอาคารสองสามชั้นแทนที่จะเป็นยอดหลังคา (สว่างก่อนพระอาทิตย์ตก) ควรเป็นกระบวนการที่ง่ายและรวดเร็ว

คำตอบ:


7

โพสต์ล่าสุดจาก 2019 - Eyesome

Eyesome เป็นสคริปต์ทุบตีที่ทำงานเป็นคนเลวทรามและนอนหลับตลอดเวลา 24/7 มันจะปรับความสว่างของหน้าจอโดยอัตโนมัติ (และเป็นทางเลือกแกมม่าเช่นกัน) สำหรับจอแสดงผลแล็ปท็อปของคุณผ่านทางอินเตอร์เฟสฮาร์ดแวร์และอีกสองจอภาพโดยใช้การควบคุมซอฟต์แวร์ของ xrandr

เมื่อพระอาทิตย์ขึ้น (เวลาที่ได้รับโดยอัตโนมัติจากอินเทอร์เน็ตในแต่ละวัน) ความสว่างหน้าจอของคุณ (และแกมมาเป็นทางเลือกด้วย) จะถูกปรับทีละน้อย การปรับแบบค่อยเป็นค่อยไปนั้นถูกกำหนดโดยคุณ แต่ 120 นาทีเหมาะกับฉัน เพื่อให้การปรับไม่สามารถสังเกตได้ให้ตั้งช่วงเวลาสลีประหว่างการปรับ ทุกที่ระหว่าง 15 ถึง 60 วินาทีน่าจะดีที่สุดและค่าเริ่มต้นคือ 60

Eyesome daemon หลับไปหลายชั่วโมงจนกระทั่งพระอาทิตย์ตกดินเริ่มขึ้น การเปลี่ยนพระอาทิตย์ขึ้นการเปลี่ยนพระอาทิตย์ตกจะค่อยๆลดความสว่างของหน้าจอ (และแกมม่าที่เป็นทางเลือกด้วย) ดังนั้นจึงไม่สามารถสังเกตเห็นได้ แนะนำก่อนพระอาทิตย์ตก 90 นาที แต่คุณสามารถกำหนดช่วงเวลาใดก็ได้ตามต้องการ

ในช่วงพระอาทิตย์ตกดินแกมมาอาจถูกกำหนดให้เพิ่มขึ้น ตัวอย่างเช่น Red gamma อาจถูกกำหนดเป็น 1.0 ในระหว่างวันและ 1.2 ในช่วงกลางคืนเพื่อลดอาการปวดตา แกมมาสีฟ้าอาจถูกกำหนดให้เป็น 1.0 ในระหว่างวันและ 0.8 ในช่วงกลางคืนดังนั้นมันจะลดลงแทน

เพื่อลดทรัพยากรดวงตาที่หลับสนิทตลอดช่วงเวลาระหว่างพระอาทิตย์ตกและพระอาทิตย์ขึ้น มีข้อยกเว้นครั้งเดียวเมื่อกลับมาทำงานอีกครั้งจากการหยุดชั่วคราวหรือการเสียบจอภาพภายนอกแบบร้อน ขึ้นอยู่กับว่าคุณอาศัยอยู่ที่ไหนและฤดูใดของปี แต่การนอนเฉลี่ยจะอยู่ที่ 12 ชั่วโมง

คุณสามารถดาวน์โหลดEyesome จาก Github


โพสต์ต้นฉบับจาก 2017

บทนำ

นี่เป็นวิธีทุบตีโดยไม่จำเป็นต้องติดตั้งโปรแกรมเพิ่มเติม มันต้องมีการเชื่อมต่ออินเทอร์เน็ต (ถ้าคุณอ่านข้อความนี้คุณมี) เพื่อรับเวลาพระอาทิตย์ขึ้นและตกโดยอัตโนมัติในแต่ละวัน มันมีหน้าจอการตั้งค่าที่ใช้งานง่าย มันเริ่มต้นขึ้นโดยอัตโนมัติด้วยcronและไม่ต้องมีการโต้ตอบกับผู้ใช้

คำตอบนี้แบ่งออกเป็นหลายส่วน

  • รับเวลาพระอาทิตย์ขึ้นและตกโดยอัตโนมัติในแต่ละวันด้วย cron
  • กำหนดการตั้งค่าความสว่างและเวลาการเปลี่ยนภาพ
  • สคริปต์หลักเพื่อปรับความสว่างตามเวลาของวัน
  • เริ่มการแสดงผล - ความสว่างอัตโนมัติโดยอัตโนมัติทุกครั้งที่บู๊ตเครื่อง cron
  • การปรับความสว่างทันที / โปร่งใสกลับมาทำงานต่อจากการหยุดชั่วคราว
  • สรุป

รับเวลาพระอาทิตย์ขึ้นและตกโดยอัตโนมัติในแต่ละวันด้วย cron

มีเว็บไซต์จำนวนมากที่รายงานเวลาพระอาทิตย์ขึ้นและตกดินสำหรับที่ตั้งของคุณ สคริปต์นี้ใช้ ( https://www.timeanddate.com/ ) ซึ่งเป็นไซต์ที่มีชื่อเสียงมาเป็นเวลานาน

ด้วย sudo powers แก้ไขไฟล์/usr/local/bin/sun-hoursและวางสิ่งนี้:

#!/bin/bash

# Called daily from /etc/cron.daily/sun-hours
while true; do

### "-q"= quiet, "-O-" pipe output
echo $(wget -q -O- https://www.timeanddate.com/sun/canada/edmonton | grep -oE 'Sunrise Today.{35}' | awk -F\> '{print $3}' | tr --delete "<") > /tmp/sunrise
echo $(wget -q -O- https://www.timeanddate.com/sun/canada/edmonton | grep -oE 'Sunset Today.{35}' | awk -F\> '{print $3}' | tr --delete "<") > /tmp/sunset

## If network is down files will have one byte size
size1=$(wc -c < /tmp/sunrise)
size2=$(wc -c < /tmp/sunset)

if [ $size1 -gt 1 ] && [ $size2 -gt 1 ] ; then
    cp /tmp/sunrise /usr/local/bin/sunrise
    cp /tmp/sunset  /usr/local/bin/sunset
    chmod 666 /usr/local/bin/sunrise
    chmod 666 /usr/local/bin/sunset
    rm /tmp/sunrise
    rm /tmp/sunset
    exit 0
else
    logger "/etc/cron.daily/sun-hours: Network is down. Waiting 5 minutes to try again."
    sleep 300
fi

done

ก่อนบันทึกสคริปต์จะแทนที่ทั้งสองเหตุการณ์/canada/edmontonด้วยประเทศและเมืองของคุณ เยี่ยมชมเว็บไซต์www.timeanddate.comเพื่อรับชื่อหรือหมายเลขที่แน่นอน ตัวอย่างเช่น "Paris, USA" มีชื่อหลายสิบชื่อดังนั้นพวกเขาจะมีหมายเลขเช่น/worldclock/@5205082"Paris, PA USA"

ใช้ cron เพื่อเรียกใช้สคริปต์ในแต่ละวัน

ด้วย sudo powers แก้ไขไฟล์/etc/cron.daily/sun-hoursและวางสิ่งนี้:

#!/bin/sh
#
# Each day /etc/cron.daily/sun-hours will get sunrise and sunset times.

sleep 60 # give time for network to come up.
/usr/local/bin/sun-hours

ทำเครื่องหมายไฟล์ทั้งสองว่าสามารถทำงานได้โดยsudo chmod a+x ___/sun-hoursที่ "___" เป็นไดเรกทอรีสำหรับแต่ละไฟล์

ใช้ Conky เพื่อตรวจสอบการเปลี่ยนแปลงเวลาพระอาทิตย์ขึ้น / ตกในแต่ละวัน

Conkyเป็นเครื่องมือยอดนิยมสำหรับตรวจสอบระบบของคุณ นี่คือคำสั่งสำหรับแสดงการตั้งค่าพระอาทิตย์ขึ้นพระอาทิตย์ตกและความสว่าง:

${color orange}${voffset 2}${hr 1}
${color}${goto 5}Day: ${color green}${execpi 300 cat /usr/local/bin/sunrise}  ${color}Night: ${color green}${execpi 300 cat /usr/local/bin/sunset}  ${color}Level: ${color green}${execpi 10 cat cat /sys/class/backlight/intel_backlight/brightness}
${color orange}${voffset 2}${hr 1}

นี่คือสิ่งที่ดูเหมือนว่า:

จอแสดงผล - ความสว่างอัตโนมัติ conky

หมายเหตุ:รหัส Conky นี้ใช้intel_backlightซึ่งคุณต้องเปลี่ยนขึ้นอยู่กับการ์ดแสดงผลตามที่อธิบายไว้ในส่วนด้านล่าง

กำหนดการตั้งค่าความสว่างและเวลาการเปลี่ยนภาพ

คุณไม่ต้องการให้จอแสดงผลของคุณเปลี่ยนเป็นความสว่างเต็มรูปแบบในเวลาพระอาทิตย์ขึ้นและแสงสลัวเมื่อพระอาทิตย์ตก จำเป็นต้องมีช่วงการเปลี่ยนภาพ นอกจากนี้ไฟล์การกำหนดค่าจะต้องบันทึกตัวแปรสำหรับความสว่างเต็มและสลัวเต็ม นี่คือหน้าจอการกำหนดค่า:

จอแสดงผลความสว่างอัตโนมัติ-config

หน้าจอสร้างขึ้นโดยใช้คำสั่งzenityมาตรฐานและค่าที่มีอยู่ดังกล่าวจะแสดงในป้ายกำกับที่มีแท็ก "(ค่า)" และคุณจะป้อนค่าใหม่หากจำเป็น มิฉะนั้นไฟล์ที่มีอยู่จะถูกเก็บไว้เมื่อค่าใหม่ว่างเปล่า

แทนที่intel_backlightด้วยไดรเวอร์การแสดงผลหากแตกต่างกัน ในการค้นหาชื่อของคุณให้ใช้: ls /sys/class/backlight/*/brightness.

การใช้ sudo powers สร้างไฟล์/usr/local/bin/auto-brightness-configและวางในรหัสนี้:

#!/bin/bash

# Read hidden configuration file with entries separated by " " into array
IFS=' ' read -ra CfgArr < /usr/local/bin/.auto-brightness-config

# Zenity form with current values in entry label
# because initializing multiple entry data fields not supported
output=$(zenity --forms --title="Display Auto Brightness Configuration" \
        --text="Enter new settings or leave entries blank to keep (existing) settings" \
   --add-entry="/sys/class/backlight/??????/brightness driver : (${CfgArr[0]})" \
   --add-entry="Day time maximum display brightness : (${CfgArr[1]})" \
   --add-entry="Transition minutes after sunrise to maximum : (${CfgArr[2]})" \
   --add-entry="Night time minimum display brightness : (${CfgArr[3]})" \
   --add-entry="Transition minutes before sunset to minimum : (${CfgArr[4]})")

IFS='|' read -a ZenArr <<<$output # Split zenity entries separated by "|" into array elements

# Update non-blank zenity array entries into configuration array
for i in ${!ZenArr[@]}; do
    if [[ ${ZenArr[i]} != "" ]]; then CfgArr[i]=${ZenArr[i]} ; fi
done

# write hidden configuration file using array (fields automatically separated by " ")
echo "${CfgArr[@]}" > /usr/local/bin/.auto-brightness-config

ทำเครื่องหมายไฟล์ว่าสามารถเรียกทำงานได้โดยใช้:

chmod a+x /usr/local/bin/auto-brightness-config

โปรแกรมหลัก display-auto-brightness

การใช้ sudo powers สร้างไฟล์/usr/local/bin/display-auto-brightnessและวางในรหัสนี้:

#!/bin/bash

# NAME: display-auto-brightness
# PATH: /usr/local/bin
# DESC: Set display brightness based on min/max values, sun rise/set time
#       and transition minutes.
# CALL: Called from cron on system startup with @reboot option.
# DATE: Feb 17, 2017. Modified: Dec 2, 2017.

# NOTE: Only sleep for 1 minute to make display brightness changes gradual.
#       Configuration file can change any time so variables reread when waking.
#       The file is maintained by /usr/local/bin/auto-brightness-config script.

#       Sunrise and sunset time obtained from www.dateandtime.com using
#       /usr/local/bin/sun-hours script. The script is called from cron using
#       /etc/cron.daily/cron-daily-sun-hours. Variables stored in am/pm format
#       in /usr/local/bin/sunrise and /usr/local/bin/sunset.

#       When suspending at 6 am it might be dark with setting at 300. When 
#       resuming at 4:30pm it might be full sun and setting needs to be 2000.
#       It will take between 1 and 59 seconds to adjust screen brightness with
#       sudden jump in brightness. To correct this create kill sleep command
#       during suspend with /lib/systemd/system-sleep/display-auto-brightness
#       script.

# TODO: Add support for external monitors connected via HDMI / DisplayPort.
#       xrandr --output HDMI-0  --brightness .799
#       xrandr --output DP-1-1  --brightness 1.15

if [[ $(id -u) != 0 ]]; then # root powers needed to call this script
    echo display-auto-brightness must be called with sudo powers
    exit 1
fi

# global variable
LastSetting=""

function set-and-sleep {
    if [[ "$1" != "$LastSetting" ]]; then
        sudo sh -c "echo $1 | sudo tee $backlight"
        echo "$1" > "/tmp/display-current-brightness"
        LastSetting="$1"
    fi
    sleep 60
}  

re='^[0-9]+$'   # regex for valid numbers

function calc-level-and-sleep {
    # Parms $1 = number of minutes for total transition
    #       $2 = number of seconds into transition

    secTotal=$(( $1 * 60 )) # Convert total transition minutes to seconds
    Adjust=$( bc <<< "scale=6; $transition_spread * ( $2 / $secTotal )" )
    Adjust=$( echo $Adjust | cut -f1 -d"." ) # Truncate number to integer

    if ! [[ $Adjust =~ $re ]] ; then
        Adjust=0   # When we get to last minute $Adjust can be non-numeric
    fi

    calc_bright=$(( $min_bright + $Adjust ))
    set-and-sleep "$calc_bright"
}


while true ; do

    # Although variables change once a day it could be weeks between reboots.
    sunrise=$(cat /usr/local/bin/sunrise)
    sunset=$(cat /usr/local/bin/sunset)

    # Read hidden configuration file with entries separated by " " into array
    IFS=' ' read -ra CfgArr < /usr/local/bin/.auto-brightness-config
    backlight="/sys/class/backlight/${CfgArr[0]}/brightness"
    max_bright="${CfgArr[1]}"
    after_sunrise="${CfgArr[2]}"
    min_bright="${CfgArr[3]}"
    before_sunset="${CfgArr[4]}"

    # Current seconds
    secNow=$(date +"%s")
    secSunrise=$(date --date="$sunrise today" +%s)
    secSunset=$(date --date="$sunset today" +%s)

    # Is it night time?
    if [ "$secNow" -gt "$secSunset" ] || [ "$secNow" -lt "$secSunrise" ]; then
        # MINIMUN: after sunset or before sunrise nightime setting
        set-and-sleep "$min_bright"
        continue
    fi

    # We're somewhere between sunrise and sunset
    secMaxCutoff=$(( $secSunrise + ( $after_sunrise * 60 ) ))
    secMinStart=$((  $secSunset  - ( $before_sunset * 60 ) ))

    # Is it full bright day time?
    if [ "$secNow" -gt "$secMaxCutoff" ] && [ "$secNow" -lt "$secMinStart" ]; then
        # MAXIMUN: after sunrise transition AND before nightime transition
        set-and-sleep "$max_bright"
        continue
    fi

    # Daytime - nightime = transition brightness levels
    transition_spread=$(( $max_bright - $min_bright ))

    # Are we between sunrise and full brightness?
    if [ "$secNow" -gt "$secSunrise" ] && [ "$secNow" -lt "$secMaxCutoff" ]; then
        # Current time - Sunrise = progress through transition
        secPast=$(( $secNow - $secSunrise ))
        calc-level-and-sleep $after_sunrise $secPast
        continue
    fi

    # Are we between beginning to dim and sunset (full dim)?
    if [ "$secNow" -gt "$secMinStart" ] && [ "$secNow" -lt "$secSunset" ]; then
        # Sunset - Current time = progress through transition
        secBefore=$(( $secSunset - $secNow ))
        calc-level-and-sleep $before_sunset $secBefore
        continue
    fi

    # At this stage brightness was set with manual override outside this program
    # or exactly at a testpoint, then it will change next minute so no big deal.
    sleep 60 # reset brightness once / minute.

done # End of forever loop

ทำเครื่องหมายไฟล์ว่าสามารถเรียกทำงานได้โดยใช้:

chmod a+x /usr/local/bin/display-auto-brightness

หมายเหตุ:แก้ไขไม่สำเร็จ 26 สิงหาคม 2017 เพื่อแก้ไขข้อผิดพลาดที่โปรแกรมจะหยุดเมื่อระดับความสว่างล่าสุดเท่ากับความสว่างขั้นต่ำหรือความสว่างสูงสุดและค่าการปรับนาทีปัจจุบันว่างเปล่า (ศูนย์) แก้ไขสำเร็จเมื่อวันที่ 2 ธันวาคม 2560 แต่ยังไม่เผยแพร่จนกว่าจะถึงวันที่ 17 กุมภาพันธ์ 2018 อุ๊ย!

เริ่มการแสดงผล - ความสว่างอัตโนมัติโดยอัตโนมัติทุกครั้งที่บู๊ตเครื่อง cron

Cron ใช้สำหรับเริ่มโปรแกรมหลักทุกครั้งที่บู๊ต สร้างไฟล์ที่/etc/cron.d/display-auto-brightnessมีพลัง sudo และคัดลอกในนี้:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot   root    /usr/local/bin/display-auto-brightness

การปรับความสว่างทันทีกลับมาทำงานต่อจากการหยุดชั่วคราว

คุณสามารถระงับคอมพิวเตอร์ของคุณที่ 06:00 เมื่อก่อนดวงอาทิตย์ขึ้นและการตั้งค่าของคุณอยู่ที่ 300 คุณสามารถดำเนินการได้ในเวลา 4 โมงเย็นเมื่อดวงอาทิตย์อยู่ที่สดใสและการตั้งค่าที่ควรจะเป็น 2000 แต่คุณต้องรอ 1-59 วินาทีเพื่อdisplay-auto-brightnessที่จะ รีเซ็ตจอแสดงผล เมื่อจอแสดงผลรีเซ็ตการเปลี่ยนแปลงนั้นน่าทึ่งมาก ในการแก้ปัญหานี้systemdจำเป็นต้องใช้สคริปต์ สร้างไฟล์/lib/systemd/system-sleep/display-auto-brightnessที่มี:

#!/bin/sh

# NAME: display-auto-brightness
# PATH: /lib/systemd/system-sleep/
# DESC: Restart display brightness when resuming from suspend
# CALL: Automatically called when system goes to sleep and wakes up
# DATE: August 2017. Modified: June 10, 2018.

# NOTE: Gives instant display brightness adjustment instead of waiting 1 to 59 seconds.

logger -t "logger -t "test" "\$0=$0, \$1=$1, \$2=$2" test" "\$0=$0, \$1=$1, \$2=$2"

case $1/$2 in
  pre/*)
    echo "/lib/systemd/system-sleep/display-auto-brightness: Going to $2..."
    ;;
  post/*)
    # March 28, 2018 On AW17R3 this script runs too fast
    sleep 2

    echo "/lib/systemd/system-sleep/display-auto-brightness: Resuming from $2..."

    # Find running tree processes containing "display-auto" AND "sleep"
    ProgramTree=$(pstree -g -p | grep display-auto | grep sleep)
    # echo's below will print in /var/log/syslog. Comment out with # to suppress
    echo "pstree -g -p | grep display-auto | grep sleep"
    echo "============================================="
    echo "$ProgramTree"

    # extract sleep program ID within `pstree`. eg we would want "16621" below:
    # |-cron(1198,1198)---cron(1257,1198)---sh(1308,1308)---display-auto-br(1321,1308)---sleep(16621,1308)
    pID=$(echo "$ProgramTree" | cut -f 6 -d '(' )
    pID=$(echo "$pID" | cut -f1 -d",")

    kill $pID  # kill sleep command forcing screen brightness to adjust immediately
    rm /tmp/display-current-brightness
    echo "display-auto-brightness: sleep pID: '$pID' has been killed."
    ;;
esac

ทำเครื่องหมายไฟล์ว่าสามารถเรียกทำงานได้โดยใช้:

chmod a+x /lib/systemd/system-sleep/display-auto-brightness

สรุป

แสดงระดับความสว่างปัจจุบันเป็น systray

นอกจาก Conky ตัวอย่างที่นำเสนอก่อนหน้านี้ตัวบ่งชี้ sysmonitorคุณสามารถแสดงความสว่างปัจจุบันใน systray ผ่าน bash:

จอแสดงผลอัตโนมัติความสว่าง systray

ในตัวอย่าง systray นี้ตั้งค่าความสว่างไว้ที่418และประมาณ 20 นาทีก่อนพระอาทิตย์ตก เวลาพระอาทิตย์ตกค่าจะเป็น 250 และความสว่างเต็มในเวลากลางวันคือ 1200 บนเครื่องนี้ intel_backlight = 4882 เป็นไปได้ แต่ถ้าคุณอยู่ในอาคารที่มีม่านเปิดหน้าจอก็เหมือนกำลังจ้องมองดวงอาทิตย์

ตัวบ่งชี้ systray ตั้งค่าโดยใช้รหัสนี้:

#!/bin/bash

if [ -f ~/.lock-screen-timer-remaining ]; then
    text-spinner
    Spinner=$(cat ~/.last-text-spinner) # read last text spinner used
    Minutes=$(cat ~/.lock-screen-timer-remaining)
    systray=" $Spinner Lock screen in: $Minutes"
else
    systray=" Lock screen: OFF"
fi

if [ -f /tmp/display-current-brightness ]; then
    Brightness=$(cat /tmp/display-current-brightness)
    systray="$systray Brightness: $Brightness"
else
    systray="$systray Brightness: OFF"
fi

echo "$systray" # sysmon-indidicator will put echo string into systray for us.

exit 0

คำถาม & คำตอบนี้ ( สามารถ BASH แสดงใน systray เป็นตัวบ่งชี้แอปพลิเคชัน? ) อธิบายวิธีการตั้งค่าตัวบ่งชี้ - sysmonitor

การปรับปรุงในอนาคต

  • การโอนย้ายสคริปต์ทุบตีสำหรับคำตอบนี้ไปยัง Github
  • การเพิ่มการรองรับจอภาพภายนอกโดยใช้ xrandr
  • เพิ่มการรองรับการใช้สีแดง / น้ำเงินที่น้อยลง xrandr

โพสต์ยอดเยี่ยม แต่คุณสามารถช่วยฉันได้อย่างไรในการเข้าสู่หน้าจอเพื่อกำหนดค่าการเปลี่ยนแปลง ฯลฯ
Marek Urbanowicz

@MU ขอบคุณสำหรับความคิดเห็นของคุณ ฉันอยู่ระหว่างการปรับปรุงเอกสารด้วยการเปลี่ยนแปลง Suspend / Resume ที่เขียนสองสามเดือนที่ผ่านมา นอกจากนี้ฉันจะเขียนรหัสไฮบริดของ WSL (Windows Subsystem สำหรับ Linux) ในไม่ช้า ฉันต้องการแก้ไขข้อกังวลของคุณในเอกสารใหม่ด้วย คุณมีปัญหาในการสร้าง/usr/local/bin/auto-brightness-configสคริปต์หรือไม่? คุณมีปัญหาในการระบุ/sys/class/backlight/??????/brightnessชื่อไดรเวอร์หรือไม่? ฉันต้องการทำให้เป็นอรรถประโยชน์ที่ยอดเยี่ยมและคำถามของคุณเป็นสิ่งสำคัญ
WinEunuuchs2Unix

ฉันไม่มีความคิดตามโพสต์ของคุณว่าจะรับการกำหนดค่า Brithness ของ Display Auto ได้อย่างไร
Marek Urbanowicz

@MU คัดลอกโค้ดข้างต้น/usr/local/bin/auto-brightness-configลงในไดเรกทอรีในไฟล์ชื่อ/usr/local/bin แล้วจากเครื่องหมายขั้วมันปฏิบัติการด้วยauto-brightness-config จากนั้นเรียกใช้สคริปต์จากท่าเรือโดยการพิมพ์chmod a+x /usr/local/bin/auto-brightness-config /usr/local/bin/auto-brightness-configคุณสามารถตั้งค่าทางลัดบนเดสก์ท็อปเป็นสคริปต์เพื่อหลีกเลี่ยงการเปิดเทอร์มินัลและพิมพ์ชื่อสคริปต์
WinEunuuchs2Unix

1
@dessert ในที่สุดฉันก็ได้ตั้งค่าหน้า github สำหรับeyesomeการจุติมาใหม่ของdisplay-auto-brightness: github.com/WinEunuuchs2Unix/eyesomeมันจะได้รับการอัปเดตบ่อยๆในอีกไม่กี่สัปดาห์ข้างหน้าพร้อมกับเอกสารและการปรับแต่งให้อินเทอร์เฟซ
WinEunuuchs2Unix

3

ฉันเพิ่งเขียน programm ซึ่งเกือบจะเป็นสิ่งที่คุณกำลังมองหา มันเปลี่ยนความสว่างของหน้าจอตามภาพที่ถ่ายโดยเว็บแคมของคุณเพื่อรับความสว่างโดยรอบ คุณสามารถเลือกช่วงเวลาเพื่อตรวจจับความสว่างและความเร็วการหรี่แสงได้ด้วยตัวเอง

https://github.com/Wandersalamander/Dimmer


1
ฟังดูเหมือนเป็นความคิดที่ดีสำหรับคนส่วนใหญ่ - ยกเว้นพวกเราที่มี masking tape บนเว็บแคม ...
WinEunuuchs2Unix

1
@ WinEunuuchs2Unix แม้แต่คนที่ 'เกี่ยวข้อง' ด้วยเทปเหนือลูกเบี้ยวมันก็เยี่ยมมาก! คุณไม่จำเป็นต้องปิดเว็บแคมด้วยเทปสีดำเพื่อให้การจับที่ไร้ประโยชน์ - กระดาษขาวแผ่นหนึ่งมีเอฟเฟกต์แบบไม่เปิดเผยชื่อแบบเดียวกันและยังคงความสามารถของกล้องในการวัดความสว่างของห้อง ในความเป็นจริงแผ่นกระดาษสามารถปรับปรุงได้จริงเนื่องจากมันจะวัดปริมาณแสงที่กระทบกับกล้องจริงมากกว่าซึ่งเสียงจะใกล้เคียงกับปริมาณที่กระทบกับหน้าจอมอนิเตอร์หากกล้องอยู่ด้านบน =)
Vinícius M


0

หากคุณไม่มีสิทธิ์เข้าถึงอินเทอร์เน็ตคุณสามารถใช้ hdate ได้:

hdate -s -l N50 -L E14 -z2

เอาท์พุท:

Wednesday, 26 June 2019, 23 Sivan 5779

sunrise: 04:55

sunset: 21:17

พระอาทิตย์ตกพระอาทิตย์ขึ้น

-l -L ระดับความสูงและละติจูดของปราก (50 ° 05′N 14 ° 25′E)

-z zone SELC = + 2

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.