Skip to content

Commit c60c41c

Browse files
diegoximenesmartinbeentjes
authored andcommitted
Fix batt_remain_short behavior when using upower. (#73)
1 parent 5a3d235 commit c60c41c

File tree

2 files changed

+32
-27
lines changed

2 files changed

+32
-27
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,7 @@ To shorten the output of `#{battery_remain}`, set the following variable:
114114

115115
set -g @batt_remain_short true
116116

117-
This will hide output if the battery is charging or charged, and shorten the
118-
time remaining (when discharging) to `~H:MM`.
117+
This will shorten the time remaining (when charging or discharging) to `~H:MM`.
119118

120119
### Tmux Plugins
121120

@@ -134,6 +133,7 @@ twitter if you want to hear about new tmux plugins or feature updates.
134133
- Aleksandar Djurdjic
135134
- Bruno Sutic
136135
- Caleb
136+
- Diego Ximenes
137137
- Evan N-D
138138
- Jan Ahrens
139139
- Joey Geralnik

scripts/battery_remain.sh

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -52,44 +52,49 @@ pmset_battery_remaining_time() {
5252
fi
5353
}
5454

55-
print_battery_remain() {
56-
if command_exists "pmset"; then
57-
pmset_battery_remaining_time
58-
elif command_exists "upower"; then
59-
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
60-
if is_chrome; then
61-
if battery_discharging; then
62-
upower -i $battery | grep 'time to empty' | awk '{printf "- %s %s left", $4, $5}'
63-
else
64-
upower -i $battery | grep 'time to full' | awk '{printf "- %s %s till full", $4, $5}'
65-
fi
55+
upower_battery_remaining_time() {
56+
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
57+
if battery_discharging; then
58+
local remaining_time
59+
remaining_time=$(upower -i "$battery" | grep -E '(remain|time to empty)')
60+
if $short; then
61+
echo "$remaining_time" | awk '{printf "%s %s", $(NF-1), $(NF)}'
6662
else
67-
upower -i $battery | grep -E '(remain|time to empty)' | awk '{print $(NF-1)}'
63+
echo "$remaining_time" | awk '{printf "%s %s left", $(NF-1), $(NF)}'
64+
fi
65+
elif battery_charged; then
66+
if $short; then
67+
echo ""
68+
else
69+
echo "charged"
70+
fi
71+
else
72+
local remaining_time
73+
remaining_time=$(upower -i "$battery" | grep -E 'time to full')
74+
if $short; then
75+
echo "$remaining_time" | awk '{printf "%s %s", $(NF-1), $(NF)}'
76+
else
77+
echo "$remaining_time" | awk '{printf "%s %s to full", $(NF-1), $(NF)}'
6878
fi
69-
elif command_exists "acpi"; then
70-
acpi -b | grep -m 1 -Eo "[0-9]+:[0-9]+:[0-9]+"
7179
fi
7280
}
7381

74-
print_battery_full() {
75-
if !$short; then
76-
return
77-
fi
82+
acpi_battery_remaining_time() {
83+
acpi -b | grep -m 1 -Eo "[0-9]+:[0-9]+:[0-9]+"
84+
}
7885

86+
print_battery_remain() {
7987
if command_exists "pmset"; then
8088
pmset_battery_remaining_time
8189
elif command_exists "upower"; then
82-
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
83-
upower -i $battery | grep 'time to full' | awk '{printf "- %s %s till full", $4, $5}'
90+
upower_battery_remaining_time
91+
elif command_exists "acpi"; then
92+
acpi_battery_remaining_time
8493
fi
8594
}
8695

8796
main() {
8897
get_remain_settings
89-
if battery_discharging; then
90-
print_battery_remain
91-
else
92-
print_battery_full
93-
fi
98+
print_battery_remain
9499
}
95100
main

0 commit comments

Comments
 (0)