unicode 文字で棒グラフ風。
"[○○%]" という表示はちょっと場所を取りすぎかなと思ったので。
(add-to-list 'mode-line-format
'(:eval (let ((bat (read (cdr (assoc ?p (funcall battery-status-function))))))
(cond ((> bat 87) "█") ((> bat 75) "▇")
((> bat 62) "▆") ((> bat 50) "▅")
((> bat 37) "▄") ((> bat 25) "▃")
((> bat 12) "▂") (t "▁")))))
screenshot : http://i.imgur.com/pRHm6FR.png