ほとんど常に夜(または朝、「何?夜明けはもう?」という言葉で)私はラップトップまたは映画シリーズの電源を入れます。 つぶやいて安心させる。 最近、電源を入れても明るさをまったく落とさないことに気付きました。 光が目を照らし、睡眠を妨げます。 もちろん、反対側を向いたり、明るさを下げたりすることで解決しますが、Fn +を探して明るさを下げたり、明るさアプレットを設定して表示したりするのは面倒です。 休憩中に明るさの低下を設定したくありませんでした。それは私を悩ますからです(コーヒーを飲んでコードを見ると、そのように引っ掻くのはとても難しいです)。 私は古いNokia E70(ああ、スマートフォンがあった)を思い出しました。そこにはライトインジケーターがありました。 そのようなセンサーは普通のカメラに取って代わることができると思いました。
異常なことは何もありません。 カメラが見て
#!/bin/bash x=320 # y=240 # n=1000 # ( 0 x*y) - N max=40 # "" ( 0 255) sleep=60 #, maxbright=100 # minbright=20 # while [ 1 ]; do # ffmpeg -f video4linux2 -s ${x}x${y} -i /dev/video0 -f image2 /tmp/snapshot.jpg 2>/dev/null # convert /tmp/snapshot.jpg -colorspace gray /tmp/snapshot.jpg # sum=0 count=0 let "s = x*y" # color=(`convert /tmp/snapshot.jpg[${x}x${y}+0+0] -depth 8 txt: | tail -n +2 | sed -n 's/^.*\(#[^ ]*\).*$/\1/p' | cut -c2-3`); # , R RGB, . for i in `seq 0 $n $s`; # N- do # 16- color1=`echo ${color[i]} | cut -c1-1` color2=`echo ${color[i]} | cut -c2-2` case "$color1" in "A" ) color1=10;; "B" ) color1=11;; "C" ) color1=12;; "D" ) color1=13;; "E" ) color1=14;; "F" ) color1=15;; esac case "$color2" in "A" ) color2=10;; "B" ) color2=11;; "C" ) color2=12;; "D" ) color2=13;; "E" ) color2=14;; "F" ) color2=15;; esac let "rgbcolor = color1*16+color2" let "sum = sum+rgbcolor" # "". let "count = count+1" # done let "avcolor = sum/count" # #echo ": $avcolor" # ( max) let "bright=avcolor*100/$max" # # if [ $bright -gt $maxbright ]; then bright=$maxbright fi if [ $bright -lt $minbright ]; then bright=$minbright fi xbacklight -set $bright # echo " : $bright" sleep $sleep # done
たくさんの光があるときに最大の明るさを見てください。 表示よりも低い値に設定し、小さな変更で明るさが前後にジャンプしないようにします。 このスクリプトが少なくとも何らかの形で目に役立つことを願っています。 暗闇では、明るさを100%にするよりも、わずかに減衰したモニターを使用する方が適切です。
このアプローチによってインターネット上ですべてが自分のために書かれているので、何も見たことがないので、共有します。
(スクリプトが機能するために)インストールする必要があるもの:ffmpeg、ImageMagick、およびxbacklight。
コメントの改善、バグなど。 私はコードが完璧ではないことを知っています。
PS:写真では、カメラはラップトップASUS N53sv(私が持っている)からのものです。 カーテンを閉じると、明るさが最小に低下し、スクリプトが確認されます。 妄想、en望。
UPD: romikは、数学を
avcolor=`convert snapshot.jpg -colorspace GRAY -resize 1x1 txt: | sed 's/[^(]*(\s*\([0-9]*\),.*/\1/p;d'`
そしてwrewolfは acpiを通して明るさを変えます
echo -n $bright > /proc/acpi/video/VGA/LCD/brightness;