Comprobación de la batería restante en el prompt

Al hilo de la entrada Hay vida en la línea de comandos, tenía una asignatura pendiente, que era la de saber en cada momento cuanta batería le quedaba al trasto. Necesitaba algo sencillo, que no implicara la instalación de sustitutos del shell como GNU Screen (multiplexador de terminales). Son servicios que se colocan “encima” de la terminal normal, para simular un entorno con varias “ventanas” y que además te puede presentar información en pantalla. El problema es que este tipo de entornos tienden a secuestrar eventos de teclado que pertenecen a otros programas -como Emacs- además de ocupar necesitar más recursos y, en mi caso, hacer cosas raras con la pantalla.

Había desarrollado un script sencillo para saber el nivel de carga de la batería. De nuevo, lo bueno de GNU/Linux es que todos los dispositivos hardware presentan información en archivos de texto fácilmente legibles y tratables, el problema es saber donde están. Para saber “donde está” tu batería, se puede hacer:

sudo find /sys -name "BAT*"

En mi caso da:

/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/PNP0C0A:00/power_supply/BAT0

Y ese directorio -el que tenga cada uno- debería tener una estructura con, como mínimo, estos directorios:

/charge_full
/charge_now
/present
/alarm
/status

Para modificar el script a vuestro entorno, habría que cambiar la variable bat con la ruta adecuada a vuestro sistema. Hecho esto, se prueba el script para ver si devuelve el valor correcto.

La segunda parte es hacer que se muestre de forma continua en el prompt del sistema. Para ello hay que modificar la variable PS1 en el archivo ~/.bashrc. Yo lo he puesto antes de la indicación del nombre de usuario. Hay que buscar la expresión “\u” en el valor de la variable PS1 y justo delante se inserta:

\$(/home/daniel/bat.rb) -

Esto hace que se invoque el script y pinte la salida como parte de tu prompt. No se actualiza continuamente, sino cada vez que la consola tiene que pintar el prompt. Básicamente, cada vez que se ejecuta cualquier comando.

Para terminar, os dejo con el susodicho script en github: https://github.com/danielside/battery/

Responder

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *