aboutsummaryrefslogtreecommitdiff
path: root/bin/dim-screen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/dim-screen.sh')
-rwxr-xr-xbin/dim-screen.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/bin/dim-screen.sh b/bin/dim-screen.sh
new file mode 100755
index 0000000..949ed85
--- /dev/null
+++ b/bin/dim-screen.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+# Debian package: xbacklight
+
+# Brightness will be lowered to this value.
+min_brightness=0
+
+# If your video driver works with xbacklight, set -time and -steps for fading
+# to $min_brightness here. Setting steps to 1 disables fading.
+fade_time=2000
+fade_steps=200
+
+# Time to sleep (in seconds) between increments when using sysfs. If unset or
+# empty, fading is disabled.
+fade_step_time=0.05
+
+
+get_brightness() {
+ if [[ -z $sysfs_path ]]; then
+ xbacklight -get
+ else
+ cat $sysfs_path
+ fi
+}
+
+set_brightness() {
+ if [[ -z $sysfs_path ]]; then
+ xbacklight -steps 1 -set $1
+ else
+ echo $1 > $sysfs_path
+ fi
+}
+
+fade_brightness() {
+ if [[ -z $sysfs_path ]]; then
+ xbacklight -time $fade_time -steps $fade_steps -set $1
+ elif [[ -z $fade_step_time ]]; then
+ set_brightness $1
+ else
+ local level
+ for level in $(eval echo {$(get_brightness)..$1}); do
+ set_brightness $level
+ sleep $fade_step_time
+ done
+ fi
+}
+
+trap 'exit 0' TERM INT
+trap "set_brightness $(get_brightness); kill %%" EXIT
+fade_brightness $min_brightness
+sleep 2147483647 &
+wait
nihil fit ex nihilo