Всё бы ничего, но не стоит забывать что для того что бы увидеть заряд батарее надо сделать какое-либо действие что бы отобразилось новое приглашение. Да и с отображением времени в строках приглашения дела обстоят аналогичным образом. Это несколько напрягает когда мы не часто в консоли что-то выполняем...
Но сама идея полезная, и используется мною с тех пор как у меня появился ноутбук. Посему хочу рассказать о своей красноглазой реализации отображения информации об аккумуляторе в консоли. Реализовано всё через GNU Screen и его статусную строку.
Добавляем в конфиг скрина backtick 1 60 60 /путь/к/скрипту (жирным выделен номер команды), а в приглянувшееся место hardstatus или caption добавляем номер команды %1`. Вот, к примеру, мой скрипт писанный судя по дате изменения пару лет назад и до сих пор верно несущий службу
#/bin/sh
#определяем цвета
GREEN="\005{+b d.}"
YELLOW="\005{+b d.}"
RED="\005{+Bb r}"
CLEAN="\005{-Bb d.}"
#определяем номер батарее
BT=1
# ну и определение и разкраска текущего состояния
REM=`grep 'remaining capacity' /proc/acpi/battery/BAT${BT}/state | awk '{print $3}'`
LAST=`grep 'last full' /proc/acpi/battery/BAT${BT}/info |awk '{print $4}'`
ADAPTERSTATUS=`cat /proc/acpi/ac_adapter/ADP${BT}/state | grep 'state' | awk '{ print $2 }'`
if [ $ADAPTERSTATUS = "on-line" ]
then
BATCURRENT=$(echo $REM $LAST | awk '{printf "%d%%", ($1/$2)*100'})
POWERLINE=$(echo "${GREEN}AC: $BATCURRENT$CLEAN")
else
PRESENT=`grep 'present rate' /proc/acpi/battery/BAT1/state | awk '{print $3}'`
BATCURRENT=$(echo $REM $LAST $PRESENT | awk '{printf "%d", ($1/$2)*100}')
BATLEFT=$(echo $REM $LAST $PRESENT | awk '{printf "%d", ($1/$3)*60}')
if [ $BATCURRENT -ge 40 ]
then
POWERLINE=$(echo "${GREEN}Battery: $BATCURRENT%$CLEAN")
fi
if [ $BATCURRENT -le 39 ]
then
if [ $BATCURRENT -ge 20 ]
then
POWERLINE=$(echo "${YELLOW}Battery: $BATCURRENT%$CLEAN")
fi
fi
if [ $BATCURRENT -le 19 ]
then
POWERLINE=$(echo "${RED}Battery: $BATCURRENT%$CLEAN")
fi
fi
# собсвтенно сам вывод
echo -e "$POWERLINE "
Если будите использовать тот скрипт что приведен на хабре не забывайте что цвета для screen несколько иначе определяются и используйте echo -e.
Вообще, в hardstatus или caption скрина можно выводить что угодно, о чем я непрестанно всем напоминаю. Даже неоднократно писал в блог об этом, например:Так же можно выводить иксовую раскладку клавиатуры (к примеру через skb — backtick 1 0 0 skb), текущую композицию в mpd (в гит ветке скрина с руским языком при выводе в статус наконец всё в порядке), последние события из /var/log/messages.log, да в общем всё что душе угодно, ибо в этом плане screen очень похож на dzen2.
Интересно, а как в tmux обстоят с этим дела? Что-то я видел там про status-left/-right, но все лениво его опробовать в бою (слишком уж привык к скрину), хотя сегодня увидел на линсовете конфиг тмукса с клавишами скрина — надеюсь это поспособствует мне в его изучении.