Статус аккумулятора в приглашении командной строки

Вот очередной велосипед на тему показа статуса аккумулятора для нэтбука на ARCH Linux :) Вот такой получается скрипт на sh (думаю все ясно из комментов): #!/bin/zsh # Определяем уровень заряда аккумулятора на текущий момент remaining_bat=`cat /proc/acpi/battery/BAT0/state | grep remaining | awk {'print $3'}`; # Определяем 100% заряда для аккумулятора full_bat=`cat /proc/acpi/battery/BAT0/info | grep full | awk {'print $4'}`; # Определяем подключён сетевой провод или нет stat=`cat /proc/acpi/battery/BAT0/state | grep charging | awk {'print $3'}`; if [ $stat = 'charging' ]; then stat='+'; # Провод подключён ( ноут зяряжеается ) else if [ $stat = 'charged' ]; then stat=''; # ( Аккумулятор зяряжен) else stat='-'; # Провод не подключён ( ноут разряжается ) fi fi # получаем заряд батареи в % ( Школьная математика - Рулит! :) ) bat=$(($remaining_bat*100/$full_bat)); # основные цвета ( ESC - последовательности, подробнее - $ man console_codes ) RED="\033[31m"; # Красный YELLOW="\033[33m"; # Жёлтый WHITE="\033[38m"; # Белый # Цвет по-умолчанию DEFAULT="\033[0m"; if [ $bat -lt 10 ]; then # Если заряд аккамулятора меньше 10% (краасные цвет) result="$RED$stat$bat"; else if [ $bat -lt 30 ]; then # Если заряд аккамулятора меньше 30% (жёлтый цвет) result="$YELLOW$stat$bat"; else result="$WHTE$stat$bat"; # Заряд аккамулятора больше 30% ( белый цвет ) fi fi # Выводим результат echo -e $result%%$DEFAULT; exit 0; Далее говорим zsh о том, что нужно выводить в PROMPT результат этого скрипта. В файле ~/.zshrc в функции precmd() прописываем где-нибудь в начале:
precmd() {
   BAT=`binf.sh`;
   PROMPT="battery:(`echo $BAT`)::%{$reset_color%}%{$fg_bold[green]%}%m {$reset_color%}::%{$fg_bold[crey]%}[ %~ ]%{$rese    +t_color%}> "
.....
Как-то вот так, где binf.sh - скрипт выше. Обязательно нужно, чтобы binf.sh лежал по пути в переменной PATH, я для этой цели создал папку bin в домашней директории и сделал ссылку на файл в папке /bin В precmd() - можно запихнуть любые команды, которые будут выполнятся при обновлении командной строки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *