diff --git a/bin/brightness b/bin/brightness index 17c562c..aa7596a 100755 --- a/bin/brightness +++ b/bin/brightness @@ -1,5 +1,11 @@ #!/bin/bash +source $HOME/.config/sway/bin/helpers DEVICE=sysfs/backlight/intel_backlight +APP=light + +## main +_log BRIGHTNESS INFO args: $* +_check_app $APP case $1 in d*) @@ -9,6 +15,7 @@ case $1 in light -s $DEVICE -A 10 ;; *) - echo "ERROR: invalid command: \"$1\"" + echo "invalid argument: \"$1\"" + echo "arguments: [decrease|increase]" ;; esac diff --git a/bin/helpers b/bin/helpers new file mode 100644 index 0000000..7c5c424 --- /dev/null +++ b/bin/helpers @@ -0,0 +1,38 @@ +#!/bin/bash +LOGFILE=$HOME/log/sway.log + +## helpers +function _log() { + mkdir -p $(dirname $LOGFILE) + echo $(date) $* | tee -a $LOGFILE +} + +function _check_app() { + which $1 &> /dev/null + if [ $? -ne 0 ]; then + _log _check_app: ERROR missing app \"$1\" + exit 1 + fi +} + +function _check_inhibit() { + if [ -e $1 ]; then + _log _check_inhibit: INFO found inhibit file $1 + exit 1 + fi +} + +function _set_inhibit() { + file=$1 + action=$2 + case "$action" in + 0|off) + rm -f $file + _log _set_inhibit: INFO inhibit disabled + ;; + *) + touch $file + _log _set_inhibit: INFO inhibit enabled + ;; + esac +} diff --git a/bin/lock b/bin/lock index 85a810e..243a1ac 100755 --- a/bin/lock +++ b/bin/lock @@ -1,50 +1,18 @@ #!/bin/bash +source $HOME/.config/sway/bin/helpers IMAGE=$HOME/.lockscreen.jpg SCROT_APP=grim SCROT_ARGS=" -t jpeg" LOCK_APP=swaylock LOCK_ARGS=" -f -c 000000 -i $IMAGE" -INHIBIT_FILE=$HOME/.inhibit - - -function _check_app() { - which $1 &> /dev/null - if [ $? -ne 0 ]; then - echo "ERROR: missing app \"$1\"" - exit 1 - fi -} - -function _check_inhibit() { - if [ -e $INHIBIT_FILE ]; then - echo "ERROR: found inhibit file $INHIBIT_FILE" - exit 1 - fi -} - -function _inhibit() { - case "$1" in - 0|off) - rm -f $INHIBIT_FILE - echo "inhibit disabled" - ;; - 1|on) - touch $INHIBIT_FILE - echo "inhibit enabled" - ;; - *) - echo "ERROR: unknown argument: $1" - ;; - esac -} +INHIBIT_FILE=$HOME/.inhibit_lock function _clean() { rm -vf $IMAGE } function _lock() { - _check_inhibit - _check_app $LOCK_APP + _check_inhibit $INHIBIT_FILE $LOCK_APP $LOCK_ARGS } @@ -57,22 +25,18 @@ function _on() { } function _screenshot() { - _check_app $SCROT_APP $SCROT_APP $SCROT_ARGS $IMAGE convert -blur 4x4 $IMAGE $IMAGE } -function _suspend() { - _check_inhibit - systemctl suspend-then-hibernate -} - -mkdir -p $HOME/log -echo "lock: $(date) args: $*" >> $HOME/log/sway.log +## main +_log LOCK INFO args: $* +_check_app $LOCK_APP +_check_app $SCROT_APP case "$1" in inhibit) - _inhibit $2 + _set_inhibit $INHIBIT_FILE $2 ;; lock) _on @@ -96,12 +60,9 @@ case "$1" in _on _screenshot ;; - suspend) - _suspend - ;; *) - echo "invalid argument \"$1\"." - echo "arguments: [lock|lockonly|off|on|screenshot]" + echo "invalid argument \"$1\"" + echo "arguments: [inhibit [on|off]|lock|lockonly|off|on|screenshot]" esac diff --git a/bin/suspend b/bin/suspend index 823e9b3..2372b00 100755 --- a/bin/suspend +++ b/bin/suspend @@ -1,13 +1,16 @@ #!/bin/bash +source $HOME/.config/sway/bin/helpers BAT_PATH=/sys/class/power_supply BAT=BAT0 MODE=suspend-then-hibernate +INHIBIT_FILE=$HOME/.inhibit_suspend +## helpers # 0: charging # 1: discharging/unknown function _state() { f=$BAT_PATH/$BAT/status - s=1 + s=1 if [ -e $f ]; then s=$(grep -c Discharging $f) fi @@ -15,20 +18,23 @@ function _state() { } function _suspend() { + _check_inhibit $INHIBIT_FILE state=$(_state) force=${1:-0} - echo "INFO: state: $state, force: $force" if [ $state -eq 1 -o $force -eq 1 ]; then systemctl $MODE else - echo "ERROR: state: $state, force: $force" + _log SUSPEND INFO aborting. state: $state, force: $force fi } -mkdir -p $HOME/log -echo "suspend: $(date) args: $*" >> $HOME/log/sway.log +## main +_log SUSPEND INFO args: $* case $1 in + inhibit) + _set_inhibit $INHIBIT_FILE $2 + ;; suspend) _suspend 0 ;; @@ -36,7 +42,7 @@ case $1 in _suspend 1 ;; *) - echo "ERROR: invalid command: \"$1\"" - echo "possible options: [suspend|force]" + echo "invalid argument: \"$1\"" + echo "arguments: [inhibit [on|off]|suspend|force]" ;; esac diff --git a/bin/volume b/bin/volume index 0c3f0c7..7d7a0a0 100755 --- a/bin/volume +++ b/bin/volume @@ -1,13 +1,9 @@ #!/bin/bash -sink=$(pacmd list-sinks | grep "* index" | grep -oE '[0-9]*') -cmd="" -app="pavucontrol" - -if [ -z "$sink" ]; then - echo "ERROR: invalid sink: \"$sink\"" - exit 1 -fi +source $HOME/.config/sway/bin/helpers +SINK=$(pacmd list-sinks | grep "* index" | grep -oE '[0-9]*') +APP="pavucontrol" +## helpers function _toggle() { a=$1 if [ $(pgrep $a) ]; then @@ -17,20 +13,28 @@ function _toggle() { fi } +## main +if [ -z "$SINK" ]; then + _log VOLUME ERROR args: $* + exit 1 +fi + case $1 in d*) - pactl set-sink-volume $sink -5% + pactl set-sink-volume $SINK -5% ;; i*) - pactl set-sink-volume $sink +5% + pactl set-sink-volume $SINK +5% ;; m*) - pactl set-sink-mute $sink toggle + pactl set-sink-mute $SINK toggle ;; gui) - _toggle $app + _check_app $APP + _toggle $APP ;; *) - echo "ERROR: invalid command: \"$1\"" + echo "invalid command: \"$1\"" + echo "arguments: [decrease|increase|mute|gui]" ;; esac