diff --git a/.i3blocks/batterybar b/.i3blocks/batterybar
index 406dcb4..fdd1d93 100755
--- a/.i3blocks/batterybar
+++ b/.i3blocks/batterybar
@@ -15,36 +15,51 @@ human_time() {
# Récupération des infos de la batterie
source /sys/class/power_supply/BAT1/uevent
+time="$(date +%s)"
+
+# Min et max hardcodés (20 et 80 % ici)
+MIN=1112600
+MAX=4452000
+
+# Utiliser toute la plage de la batterie
+#MIN=0
+#MAX="$POWER_SUPPLY_CHARGE_FULL"
# %age réel
#percentage="$POWER_SUPPLY_CAPACITY"
-# %age relatif aux 80 % limités dans le BIOS
-percentage=$(( POWER_SUPPLY_CHARGE_NOW * 100 / 4450400 ))
+# %age relatif aux MIN/MAX
+percentage=$(( (POWER_SUPPLY_CHARGE_NOW - MIN) * 100 / (MAX - MIN) ))
+
+# État de la batterie
status="$POWER_SUPPLY_STATUS"
-if [[ "$status" == "Charging" && "$percentage" -eq 80 ]]
+
+# Indiquer la limite mise dans le BIOS, si la batterie n’indique pas qu’elle
+# est chargée d’elle-même
+if [[ "$status" == "Charging" && "$POWER_SUPPLY_CAPACITY" -eq 80 ]]
then
status="Full"
fi
-time="$(date +%s)"
-
if [[ -f "${runtime}/bat" ]]
then
mapfile -t old < "${runtime}/bat"
fi
+# Estimation naïve du temps restant
if [[ "${old[0]}" != "$status" ]]
then
printf "%s\n" "$status" "$time" "$POWER_SUPPLY_CHARGE_NOW" > "${runtime}/bat"
fi
-
if [[ "$status" == "Discharging" ]]
then
- remaining_secs="$(( POWER_SUPPLY_CHARGE_NOW / ((old[2] - POWER_SUPPLY_CHARGE_NOW) / (time - old[1])) ))"
+ remaining_secs="$(( (POWER_SUPPLY_CHARGE_NOW - MIN) / ((old[2] - POWER_SUPPLY_CHARGE_NOW) / (time - old[1])) ))"
+elif [[ "$status" == "Charging" ]]
+then
+ remaining_secs="$(( (MAX - POWER_SUPPLY_CHARGE_NOW) / ((POWER_SUPPLY_CHARGE_NOW - old[2]) / (time - old[1])) ))"
else
- remaining_secs="$(( (4450400 - POWER_SUPPLY_CHARGE_NOW) / ((POWER_SUPPLY_CHARGE_NOW - old[2]) / (time - old[1])) ))"
+ remaining_secs=0
fi
remaining="$(human_time "$remaining_secs")"
@@ -57,18 +72,13 @@ full_color="#D3D0C8"
# Création de la barre « graphique », 48 états affichables
-## à partir du pourcentage de charge
+## à partir du pourcentage de calculé plus tôt
-#percents=$(( percentage / 2 ))
-#(( percents > 48 )) && percents=48
+percents=$(( percentage / 2 ))
+(( percents > 48 )) && percents=48
## à partir des données brutes
-
-### Relatif à 100 %
-#percents=$(( POWER_SUPPLY_CHARGE_NOW * 48 / POWER_SUPPLY_CHARGE_FULL ))
-
-### Relatif à 80 % (limite de charge du BIOS)
-percents=$(( POWER_SUPPLY_CHARGE_NOW * 48 / 4450400 ))
+# percents=$(( (POWER_SUPPLY_CHARGE_NOW - MIN) * 48 / (MAX - MIN) ))
full_squares=$(( percents / 8 ))
@@ -164,4 +174,4 @@ fi
# Affichage
echo "bat $message"
-echo "bat ${percentage}%"
\ No newline at end of file
+echo "bat ${percentage}%"