Намедни озадачился отсутствием индикатора заряда батареи в xfce-4.4.3, который идет в стандартной поставке Slackware 12.2. Плагин, который можно скачать с офф. сайта проекта xfce мне не понравился хотя бы только потому, что тянет за собой ряд зависимостей, захламлять которыми машину как-то не хочется, плюс установить удалось только одну из версий, которая толком и не работала. С другой стороны, на машинке уже установлена libnotify, которая позволяет выводить всплывающие уведомления, так почему бы не вспользоваться ей. Решение и реализация заняли всего 10 минут.
1. Определяемся, где у нас лежит информация о батарее.
$ cat /proc/acpi/battery/BAT1/state – информация о состоянии, отсюда будем брать текущий заряд.
$ cat /proc/acpi/battery/BAT1/info – общая информация, отсюда будем брать общую емкость, для вычисления процентов.
Возможно у Вас путь будет немного другой, например /proc/acpi/battery/BAT0/state
2. Пишем скрипт.
Первое что пришло на ум, это perl, хотя уверен, реализовать такое легко и на bash
1. #!/usr/bin/perl -w
2. my ($file1,$file2,@data,$damage,$current);
3. #читаем файл с информацией о батарее
4. open F1, '/proc/acpi/battery/BAT1/info'; while (<F1>) { $file1 .= $_; }; close F1;
5. open F2, '/proc/acpi/battery/BAT1/state'; while (<F2>) { $file2 .= $_; }; close F2;
6. #выбираем интересующие нас данные
7. return unless @data[0] = $file1 =~ /design\scapacity\:\s+(\d+)\s\w+/;
8. return unless @data[1] = $file1 =~ /last\sfull\scapacity\:\s+(\d+)\s\w+/;
9. return unless @data[2] = $file2 =~ /remaining\scapacity\:\s+(\d+)\s\w+/;
10. #считаем проценты
11. $damage = 100-(@data[1]/40);$damage = sprintf("%.1f",$damage);
12. $current = (@data[2]*100)/@data[1];$current = sprintf("%.1f",$current);
13. #вызываем внешнюю программу для отображения данных
14. `notify-send -u critical -t 7000 -i battery "
15. \tТекущий заряд батареи $current%
16. \n\tИзнос батареи $damage%
17. "`
Вот собственно и все, при вызове этой программки получаем нечто подобное:

При желании можно вызывать скрипт посредством bash скрипта, а если сделать симлинк на этот скрипт в /usr/local/bin, то можно, в добавок, повесить вызов уведомления на хоткей.