Add key backlight

This commit is contained in:
Alexander Hosking 2017-12-11 23:57:35 -05:00
parent c695f6b304
commit 832897a82d
3 changed files with 114 additions and 3 deletions

View File

@ -67,8 +67,11 @@ bindsym $mod+XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 toggle # m
## requires xbacklight ## requires xbacklight
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness #bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness #bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
# increase/decrease keyboard brightness
bindsym XF86KbdBrightnessUp exec keybrightness up
bindsym XF86KbdBrightnessDown exec keybrightness down
## Keyboard Backlighting ## Keyboard Backlighting
#/sys/devices/platform/asus-nb-wmi/leds/asus\:\:kbd_backlight/brightness #/sys/devices/platform/asus-nb-wmi/leds/asus\:\:kbd_backlight/brightness

View File

@ -33,7 +33,8 @@ ln -sfv ~/.vim/bundle/vimspectr/shell ~/.vimspectr-shell
ln -sfv "$DOTFILES_DIR/run/.profile" ~ ln -sfv "$DOTFILES_DIR/run/.profile" ~
ln -sfv "$DOTFILES_DIR/run/.xprofile" ~ ln -sfv "$DOTFILES_DIR/run/.xprofile" ~
ln -sfv "$DOTFILES_DIR/run/.bashrc" ~ ln -sfv "$DOTFILES_DIR/run/.bashrc" ~
ln -sfv "$DOTFILES_DIR/system/.bruise" ~/apps/bruise ln -sfv "$DOTFILES_DIR/system/.bruise" ~/bin/bruise
ln -sfv "$DOTFILE_DIR/system/.keybrightness" ~/bin/keybrightness
ln -sfv "$DOTFILES_DIR/git/.gitconfig" ~ ln -sfv "$DOTFILES_DIR/git/.gitconfig" ~
ln -sfv "$DOTFILES_DIR/system/.vimrc" ~ ln -sfv "$DOTFILES_DIR/system/.vimrc" ~
ln -sfv "$DOTFILES_DIR/system/.dir_colors" ~ ln -sfv "$DOTFILES_DIR/system/.dir_colors" ~

107
system/.keybrightness Normal file
View File

@ -0,0 +1,107 @@
#!/bin/sh
# By Giorgos Keramidas
# From: https://unix.stackexchange.com/questions/260409/set-bindings-in-i3-to-control-keyboard-backlight
# backlight_get
# Print current keyboard brightness from UPower to stdout.
backlight_get()
{
dbus-send --type=method_call --print-reply=literal --system \
--dest='org.freedesktop.UPower' \
'/org/freedesktop/UPower/KbdBacklight' \
'org.freedesktop.UPower.KbdBacklight.GetBrightness' \
| awk '{print $2}'
}
# backlight_get_max
# Print the maximum keyboard brightness from UPower to stdout.
backlight_get_max()
{
dbus-send --type=method_call --print-reply=literal --system \
--dest='org.freedesktop.UPower' \
'/org/freedesktop/UPower/KbdBacklight' \
'org.freedesktop.UPower.KbdBacklight.GetMaxBrightness' \
| awk '{print $2}'
}
# backlight_set NUMBER
# Set the current backlight brighness to NUMBER, through UPower
backlight_set()
{
value="$1"
if test -z "${value}" ; then
echo "Invalid backlight value ${value}"
fi
dbus-send --type=method_call --print-reply=literal --system \
--dest='org.freedesktop.UPower' \
'/org/freedesktop/UPower/KbdBacklight' \
'org.freedesktop.UPower.KbdBacklight.SetBrightness' \
"int32:${value}}"
}
# backlight_change [ UP | DOWN | NUMBER ]
# Change the current backlight value upwards or downwards, or
# set it to a specific numeric value.
backlight_change()
{
change="$1"
if test -z "${change}" ; then
echo "Invalid backlight change ${change}." \
"Should be 'up' or 'down'." >&2
return 1
fi
case ${change} in
[1234567890]|[[1234567890][[1234567890])
current=$( backlight_get )
max=$( backlight_get_max )
value=$( expr ${change} + 0 )
if test ${value} -lt 0 || test ${value} -gt ${max} ; then
echo "Invalid backlight value ${value}." \
"Should be a number between 0 .. ${max}" >&2
return 1
else
backlight_set "${value}"
notify-send -t 800 "Keyboard brightness set to ${value}"
fi
;;
[uU][pP])
current=$( backlight_get )
max=$( backlight_get_max )
if test "${current}" -lt "${max}" ; then
value=$(( ${current} + 1 ))
backlight_set "${value}"
notify-send -t 800 "Keyboard brightness set to ${value}"
fi
;;
[dD][oO][wW][nN])
current=$( backlight_get )
if test "${current}" -gt 0 ; then
value=$(( ${current} - 1 ))
backlight_set "${value}"
notify-send -t 800 "Keyboard brightness set to ${value}"
fi
;;
*)
echo "Invalid backlight change ${change}." >&2
echo "Should be 'up' or 'down' or a number between" \
"1 .. $( backlight_get_max )" >&2
return 1
;;
esac
}
if test $# -eq 0 ; then
current_brightness=$( backlight_get )
notify-send -t 800 "Keyboard brightness is ${current_brightness}"
else
# Handle multiple backlight changes, e.g.:
# backlight.sh up up down down up
for change in "$@" ; do
backlight_change "${change}"
done
fi