Ковыряясь с настройками
Выглядит это как-то вот так:
Приведенный ниже код тестировался на ubuntu, кроме цветов (
Правое приглашение командной строки в
Алгоритм работы прост, как амеба во внебрачный период:
— получили и распарсили заряд батареи от
— определили цвет отображения (красный, если меньше 20%, желтый — до 50%, иначе — зеленый);
— нарисовали сколько нужно закрашенных треугольников, потом остаток — незакрашенными;
— вывели в правое приглашение командной строки.
Эта заметка — просто иллюстрация принципа «потрать три минуты и сделай себе жизнь навсегда удобнее». Если вы, конечно, являетесь таким же адептом консоли, как я. Я знаю, что код не вылизан до состояния «можно на выставку» — но зачем мне это?
В качестве еще одного примера — выведем справа код возврата предыдущей команды:
zsh
, наткнулся на весьма интересное решение для приглашения командной строки, которое размещается в этом шелле справа. Обычно туда принято помещать часы, но мне весьма приглянулась идея разместить там также нотификатор заряда батареи. В зависимости от уровня заряда, нотификатор показывается зеленым, желтым или красным цветом. Автор идеи зачем-то приплел к решению python, я все переписал на родном шелле.Выглядит это как-то вот так:
Приведенный ниже код тестировался на ubuntu, кроме цветов (
%F{…}
) все обязано работать на любых дистрибутивах под zsh
. Итак, приступим.Правое приглашение командной строки в
zsh
задается переменной среды окружения RPROMPT
. Вот кусок кода, который имеет смысл разместить в ~/.zshrc
(или в ~/.oh-my-zsh/themes/ВАША_ТЕМА
, если вы уже знаете про oh-my-zsh):function battery_charge {
# Battery 0: Discharging, 94%, 03:46:34 remaining
bat_percent=`acpi | awk -F ':' {'print $2;'} | awk -F ',' {'print $2;'} | sed -e "s/\s//" -e "s/%.*//"`
if [ $bat_percent -lt 20 ]; then cl='%F{red}'
elif [ $bat_percent -lt 50 ]; then cl='%F{yellow}'
else cl='%F{green}'
fi
filled=${(l:`expr $bat_percent / 10`::▸:)}
empty=${(l:`expr 10 - $bat_percent / 10`::▹:)}
echo $cl$filled$empty'%F{default}'
}
RPROMPT='[%*] $(battery_charge)'
Алгоритм работы прост, как амеба во внебрачный период:
— получили и распарсили заряд батареи от
acpi
(может потребоваться установить sudo apt-get install acpi
);— определили цвет отображения (красный, если меньше 20%, желтый — до 50%, иначе — зеленый);
— нарисовали сколько нужно закрашенных треугольников, потом остаток — незакрашенными;
— вывели в правое приглашение командной строки.
Эта заметка — просто иллюстрация принципа «потрать три минуты и сделай себе жизнь навсегда удобнее». Если вы, конечно, являетесь таким же адептом консоли, как я. Я знаю, что код не вылизан до состояния «можно на выставку» — но зачем мне это?
В качестве еще одного примера — выведем справа код возврата предыдущей команды:
RPROMPT='%{$fg[red]%} ⏎ $? %{$reset_color%} '$RPROMPT