Você pode usar qualquer idioma que seja mais confortável para a maior parte. Perl, Python, C e C ++ vêm à mente ... mas há vários outros com wrappers para bibliotecas GUI. A leitura do status da bateria pode ser realizada por meio de interfaces de espaço no arquivo do kernel (fácil para qualquer idioma).
Resposta vaga, eu sei.