Skip to content

feat: enable device configuration for backlight (#1) #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Maintainer: harttle <[email protected]>
# Inspired by lighter, many thanks to Janhouse's perl script https://github.com/Janhouse/lighter
pkgname=macbook-lighter
pkgver=v0.0.2.5.g112c1f0
pkgver=v0.0.2.9.ge9d3b89
pkgrel=1
pkgdesc="Macbook screen/keyboard backlight CLI and auto-adjust on ambient light"
arch=(any)
Expand All @@ -11,7 +11,7 @@ depends=('bc')
makedepends=('git')
provides=()
conflicts=()
source=('git+https://github.com/harttle/macbook-lighter.git')
source=('git+https://github.com/afrischk/macbook-lighter.git')
md5sums=('SKIP')

pkgver() {
Expand Down
3 changes: 3 additions & 0 deletions macbook-lighter.conf
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,6 @@ ML_AUTO_SCREEN=true
# debug info to stdout
# Available values: false, true
ML_DEBUG=false

# device to use
DEVICE=intel_backlight
22 changes: 13 additions & 9 deletions src/macbook-lighter-ambient.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
#!/usr/bin/env bash

intel_dir=/sys/class/backlight/intel_backlight
kbd_dir=/sys/class/leds/smc::kbd_backlight
# load config
[ -f /etc/macbook-lighter.conf ] && source /etc/macbook-lighter.conf

device=${DEVICE:-intel_backlight}
device_dir=/sys/class/backlight/$device
kbd_dir=/sys/class/leds/smc::kbd_backlight
power_file=/sys/class/power_supply/ADP1/online
screen_file=$intel_dir/brightness
screen_file=$device_dir/brightness
kbd_file=$kbd_dir/brightness
lid_file=/proc/acpi/button/lid/LID0/state
light_file="/sys/devices/platform/applesmc.768/light"
light_file=/sys/devices/platform/applesmc.768/light

#####################################################
# wait drivers loaded

$ML_DEBUG && echo checking $intel_dir and $kbd_dir...
while [ ! -d $intel_dir -o ! -d $kbd_dir ]; do
$ML_DEBUG && echo checking $device_dir and $kbd_dir...
while [ ! -d $device_dir -o ! -d $kbd_dir ]; do
sleep 1
done
screen_max=$(cat $intel_dir/max_brightness)
screen_max=$(cat $device_dir/max_brightness)

#####################################################

# Settings
[ -f /etc/macbook-lighter.conf ] && source /etc/macbook-lighter.conf
ML_DURATION=${ML_DURATION:-1.5}
ML_FRAME=${ML_DURATION:-0.017}
ML_FRAME=${ML_FRAME:-0.017}
ML_INTERVAL=${ML_INTERVAL:-5}
ML_BRIGHT_ENOUGH=${ML_BRIGHT_ENOUGH:-40}
ML_SCREEN_THRESHOLD=${ML_SCREEN_THRESHOLD:-10}
Expand All @@ -34,6 +37,7 @@ ML_AUTO_SCREEN=${ML_AUTO_SCREEN:-true}
ML_DEBUG=${ML_DEBUG:-false}

#####################################################

# Private States
screen_ajusted_at=0
kbd_adjusted_at=0
Expand Down
2 changes: 2 additions & 0 deletions src/macbook-lighter-kbd.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/usr/bin/env bash

set -e

device='/sys/class/leds/smc::kbd_backlight/brightness'
Expand Down
28 changes: 17 additions & 11 deletions src/macbook-lighter-screen.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
#!/usr/bin/env bash

set -e

device='/sys/class/backlight/intel_backlight/brightness'
current=`cat $device`
max=`cat /sys/class/backlight/intel_backlight/max_brightness`
# load config
[ -f /etc/macbook-lighter.conf ] && source /etc/macbook-lighter.conf

device=${DEVICE:-intel_backlight}
brightness=/sys/class/backlight/$device/brightness
curr_brightness=`cat $brightness`
max_brightness=`cat /sys/class/backlight/$device/max_brightness`

screen_help () {
echo 'Usage: macbook-lighter-screen <OPTION> [NUM]'
Expand All @@ -12,34 +18,34 @@ screen_help () {
echo ' -i [NUM], --inc [NUM] increase backlight by NUM'
echo ' -d [NUM], --dec [NUM] decrease backlight by NUM'
echo ' -m, --min close backlight'
echo ' -M, --max set backlight to max'
echo ' -M, --max_brightness set backlight to max_brightness'
echo ' -h, --help print this message'
echo ''
echo 'Examples:'
echo ' # Increase screen backlight by 50'
echo ' macbook-lighter-screen --inc 50'
echo ''
echo ' # Set screen backlight to max'
echo ' macbook-lighter-screen --max'
echo ' # Set screen backlight to max_brightness'
echo ' macbook-lighter-screen --max_brightness'
}

screen_set() {
echo $1 > $device
echo $1 > $brightness
echo set to $1
}

case $1 in
-i|--inc)
screen_set $((current+$2 > max ? max : current + $2))
screen_set $((curr_brightness + $2 > max_brightness ? max_brightness : curr_brightness + $2))
;;
-d|--dec)
screen_set $((current < $2 ? 0 : current - $2))
screen_set $((curr_brightness < $2 ? 0 : curr_brightness - $2))
;;
-m|--min)
screen_set 0
;;
-M|--max)
screen_set $max
-M|--max_brightness)
screen_set $max_brightness
;;
-h|--help)
screen_help
Expand Down