Script para avisar de la carga de la batería

Script para avisar de la carga de la batería
Photo by Roberto Sorin / Unsplash

Este fin de semana he instalado ArchLinux con el escritorio MATE, todo con ayuda de ArcoLinux. Me he encontrado con que el gestor de energía no me lanzaba avisos, ni cuando la batería estaba casi llena ni cuando estaba prácticamente vacía, así que decidí buscar un método.

Encontré un script en slimbook.es pero no funcionaba correctamente. Lo que ocurría es que el comando notify-send no se lanzaba, pero encontré la solución. Primero vamos a ejecutar el comando:

id -a

Nos da algo como esto de salida, tenemos que quedarnos con el número donde pone uid seguido de nuestro nombre de usuario, es el id de usuario

Este es el script:

#!bin/bash
#
# -*- ENCODING: UTF-8 -*-
# Este programa es software libre. Puede redistribuirlo y/o
# modificarlo bajo los términos de la Licencia Pública General
# de GNU según es publicada por la Free Software Foundation,
# bien de la versión 2 de dicha Licencia o bien (según su
# elección) de cualquier versión posterior.
#
# Si usted hace alguna modificación en esta aplicación,
# deberá siempre mencionar al autor original de la misma.
#
# DesdeLinux.net CC-BY-SA 2015
# Autor: ELAV
BATLVL=$(cat /sys/class/power_supply/BAT1/capacity)
if [ $BATLVL -ge 95 ]; then
    if [ ! -a /tmp/batwarn ]; then
        #Esta es la línea que hay que modificar
        sudo -u clonbg DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send --urgency=critical --expire-time=5000 --app-name=Bateria --icon=battery "Notificación de Batería" "Desconecta el cargador por favor" ;
        touch /tmp/batwarn ;
    fi
elif [ $BATLVL -le 15 ]; then
    if [ ! -a /tmp/batwarn ]; then
        #Esta es la línea que hay que modificar
        sudo -u clonbg DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send --urgency=critical --expire-time=5000 --app-name=Bateria --icon=battery "Notificación de Batería" "Conecta el cargador por favor"
        touch /tmp/batwarn ;
    fi
else
    if [ -a /tmp/batwarn ]; then
        rm -f /tmp/batwarn ;
    fi
fi

También lo tenéis aquí para descargar. No olvides darle permisos de ejecución:

sudo chmod a+x bateria.sh

Las dos líneas que hay que modificar son las que empiezan por:

sudo -u clonbg DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send....

donde clonbg es mi nombre de usuario y 1000 es mi uid. Cámbialo por los tuyos.

Ahora lo que hay que hacer es que se ejecute continuamente. He instalado cronie

yay cronie

He ejecutado:

sudo crontab -e

Y he añadido esta línea con la ruta de mi script:

*/5 * * * * /bin/sh /home/clonbg/Git/Scripts/MisScripts/bateria.sh

Con esto hacemos que se ejecute cada cinco minutos, y...

Salu2

Document