#!/bin/sh
v=251116b #sfs
which batticonplus && cbatticon=batticonplus
which cbatticon    && cbatticon=cbatticon
[ ! "$cbatticon" ] && echo "No cbatticon. No batticonplus" && exit 1
pm="$0"
if [ "$1" = "--help" ];then
    t2="Принцип работы $cbatticon-gui"
    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.

Если батареи нет - запуск $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" \
    --name="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=\"standart\"
not=TRUE
lcl=\"$pm\"
ll=10
lle=\"\"
cl=5
cle=\"\"
" >"$c"
. "$c"

if [ "$1" = "-c" ] ;then
#    which laptop-detect && { laptop-detect || exit ; }
[ `$cbatticon -p |wc -l` -eq 1 ] && echo "No battery" && exit 1
[ "`grep '<property name="general-notification" type="bool"' "$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml" |grep 'value="false"'`" ] &&
    echo "Disabled in $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml" && exit 1

    [ "$not" = "TRUE" ] || n="--hide-notification"
    [ "$lle" ] && llec=" --command-low-level \"$lle\""
    [ "$cle" ] && clec=" --command-critical-level \"$cle\""
    [ "$lcl" ] && lclc=" --command-left-click $lcl"
#echo $lclc ;exit
    $cbatticon \
    --update-interval "$sec" \
    --icon-type "$ico" \
    --low-level "$ll" \
    --critical-level "$cl" \
    $llec \
    $clec \
    ${lclc} \
    "$n" &
    exit
fi

yad --version |grep -E '^0' && gtk=gtk || gtk=yad
t1="Настройка $cbatticon\n<small>(мониторинг в трее)\n`$cbatticon -p`</small>"
which power-man && pmb="--button=Менеджер-питания!battery:7" && pmc=power-man
which xfce4-power-manager && pmb="--button=Менеджер-питания!battery:7" && pmc=xfce4-power-manager

y="$(yad --title="$cbatticon-gui 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" \
    --name="battery" \
    --Xfixed --image-on-top --center --width=600 --Xheight=300  \
    --form \
	--field=":LBL"  \
    --field="обновлениe (сек)!Интервал обновления (секунд):SCL" \
    --field="тип значка!Укажите тип значка для отображения в системном трее. Если он не указан, $cbatticon будет использовать первый из доступных:CB" \
    --field="уведомления!Всплывающие уведомления:SW" \
    --field="левый клик!Выполнить при левом клике на значке в трее. Если нужно указать ключи - создайте скрипт:FL" \
	--field=":LBL"  \
	--field="<b>Низкий уровень заряда:</b>:LBL"  \
    --field="%:SCL" \
    --field="Выполнить:!Если нужно указать ключи - создайте скрипт:FL" \
	--field=":LBL"  \
	--field="<b>Критический уровень заряда:</b>:LBL"  \
    --field="%:SCL" \
    --field="Выполнить:!Если нужно указать ключи - создайте скрипт:FL" \
    --button=$gtk-about:5 \
    $pmb \
    --button=$gtk-cancel:1 \
    --button=$gtk-ok:0 \
    1\
    "$sec"\
    "$ico!`$cbatticon -t |tail -n3|tr "\n" "!"`"\
    $not\
    "$lcl"\
    6\
    7\
    $ll\
    "$lle"\
    10\
    11\
    $cl\
    "$cle"\
)"
#echo "ss $?" ;exit
ex="$?"
[ "$ex" = 5 ] && { exec "$0" --help  ; exit ; }
[ "$ex" = 7 ] && { exec "$pmc" ; 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 
