#!/bin/sh
v=240303 #sfs
if [ "$1" = "--help" ];then
    t2="Принцип работы `basename "$0"`"
    t="\
В $HOME/.config/cbatticon.conf сохранены параметры, которые устанавливаются в `basename "$0"`.
После нажатия в GUI OK - cbatticon перезапускается с новыми параметрами.

Если вы прописываете действия, которые потребуют ввод пароля для sudo - настройте 
беспарольное исполнение (https://wiki.archlinux.org/title/Sudo).

При старте системы /etc/xdg/autostart/cbatticon.desktop читает cbattery.conf и запускает с 
этими параметрами cbatticon.

При наличии laptop-detect проверяется наличие батареи. 
Если батареи нет - запуск cbatticon не происходит"
    echo "$t" | yad  --image-on-top  $i  "$yad_deco" --Xmouse --center --fixed --show-uri --Xformatted \
    --title="$t2 v.$v" --selectable-labels --scroll --Xwidth=600 --text-width=10 \
    --image="gtk-help" \
    --window-icon="gtk-help" \
    --text "<big><b>$t2</b></big>\n
<i>$t</i>" 
    exec "$0" ;exit
fi
c="$HOME/.config/cbatticon.conf"

[ -f "$c" ] || echo "\
sec=20
ico=
not=TRUE
lcl=
ll=10
lle=\"notify-send -u low -i gtk-info 'Заряд батареи 10%'\"
cl=5
cle=\"notify-send -u critical -i gtk-dialog-warnings 'Заряд батареи 5%'\"
" >"$c"
. "$c"

if [ "$1" = "-c" ] ;then
    which laptop-detect && { laptop-detect || exit ; }
    [ "$not" = "TRUE" ] || n="--hide-notification"
    cbatticon \
    --update-interval "$sec" \
    --icon-type \""$ico"\" \
    --low-level "$ll" \
    --critical-level "$cl" \
    --command-low-level \""$lle"\" \
    --command-critical-level \""$cle"\" \
    --command-left-click \""$lcl"\" \
    "$n" &
    exit
fi

yad --version |grep -E '^0' && gtk=gtk || gtk=yad
t1="Настройка cbatticon\n<small>(мониторинг в трее)\n`cbatticon -p`</small>"
y="$(yad --title="`basename "$0"` v.$v" --Xf1-action=power-hlp --uri-handler=xdg-open --fixed \
    --text=" <big>$t1</big>"  --text-align=center --align=center --columns=1  --Xscroll --Xheight=100 \
    --image="battery" --Xexpander="Show entry" --Xseparator="," \
    --window-icon="battery" \
    --Xfixed --image-on-top --center --width=600 --Xheight=300  \
    --form \
	--field=":LBL"  \
    --field="обновлениe (сек)!Интервал обновления (секунд):SCL" \
    --field="тип значка!Укажите тип значка для отображения в системном трее. Если он не указан, cbatticon будет использовать первый из доступных:CB" \
    --field="уведомления!Всплывающие уведомления:SW" \
    --field="левый клик!Выполнить при левом клике на значке в трее:" \
	--field=":LBL"  \
	--field="<b>Низкий уровень заряда:</b>:LBL"  \
    --field="%:SCL" \
    --field="Выполнить:" \
	--field=":LBL"  \
	--field="<b>Критический уровень заряда:</b>:LBL"  \
    --field="%:SCL" \
    --field="Выполнить:" \
    --button=$gtk-about:3 \
    --button=$gtk-cancel \
    --button=$gtk-ok \
    1\
    "$sec"\
    "`cbatticon -t |tail -n3|tr "\n" "!"`"\
    $not\
    "$lcl"\
    6\
    7\
    $ll\
    "$lle"\
    10\
    11\
    $cl\
    "$cle"\
)"
[ "$?" = 3 ] && { exec "$0" --help  ; exit ; }
echo $y
#exit
[ "$y" ] && mv "$c" "$c".bak || exit
ico="`echo "$y" | awk -F "|" '{print $3}'`"
ico="`echo "$ico" |awk '{print $1}'`"
echo "$y" |awk -F"|" '{print "sec="$2"\nico='$ico'\nnot="$4"\nlcl=\""$5"\"\nll="$8"\nlle=\""$9"\"\ncl="$12"\ncle=\""$13"\""}' >"$c"
killall cbatticon ; "$0" -c 
