¿Cómo puedo obtener una notificación en pantalla usando notify-osd cuando enchufo / desconecto el cargador?
battery
notification
notify-osd
panico kernel
fuente
fuente

Respuestas:
Cambiar entre la alimentación de CA y la energía de la batería debería generar un evento en el bus del sistema D-Bus . Ejecute
dbus-monitor --systemy observe qué eventos se generan en su sistema.Si tienes upower ejecutándose, recibirás notificaciones más especializadas
upower -m.También puede obtener eventos de
acpi_listen.Ejecute este script cuando desee comenzar a ver notificaciones o agréguelo al inicio de su sesión.
fuente
dbus
Algunas personas informaron que mi solución anterior de udev envió la notificación demasiadas veces cuando se enchufó el cable de alimentación. No pude reproducir eso, pero escribí este script de Python para utilizar dbus en lugar de udev. Guárdelo como un
.pyarchivo en algún lugar de su disco duro. Marque el archivo ejecutable ejecutando:y agréguelo a sus aplicaciones de inicio como se describe aquí . Este script requiere que el paquete
acpiesté instalado.udev
Con un poco de experimentación (y un poco de ayuda) pude utilizar una regla udev para lograr esto. Algunas personas han informado que a veces envía la notificación más de una vez, pero no he tenido ningún problema. YMMV.
Cree un script con los siguientes contenidos:
reemplazando
some_usercon su nombre de usuario. Marque el archivo ejecutable ejecutando:reemplazando
/path/to/script.shcon la ruta a donde guardó el script.A continuación, cree un archivo con
/etc/udev/rules.dnombre10-power.rulescon el contenido:nuevamente reemplazando
/path/to/script.shcon la ruta al script que creó anteriormente.Ahora vuelva a cargar las reglas de udev ejecutando:
Desenchufe el cable de alimentación. Deberías recibir una notificación.
fuente
XAUTHORITYalgunos administradores de pantalla como gdm.dbus-monitor. Mira mi respuesta.Fuente de script
Obteniendo el guión
El script también se agrega a mi github ; esa versión será actualizada y desarrollada un poquito más.
Puede obtenerlo haciendo lo siguiente:
sugo apt-get install gitcd /optgit clone https://github.com/SergKolo/sergrep.gitEl script estará en el
/opt/sergrepdirectorio, llamadonotify_ac_change.shDiseño conceptual
Las preguntas clave son "¿Cómo verificamos la presencia del adaptador de CA?" y "¿Cómo detectamos cambios?"
Bueno, este problema ha sido resuelto hace mucho tiempo por otros desarrolladores. Ubuntu viene por defecto con un script llamado on_ac_power , que se almacena en
/usr/bin/on_ac_power. El adaptador de corriente se puede mencionar en diferentes subsistemas en el núcleo (ACPI o APM), pero este script simplifica nuestro trabajo: los autores han cubierto muchas variaciones posibles. Solo devuelve el estado de salida, por lo que es apropiado para su uso enifdeclaraciones.¿Por qué es
on_ac_poweruna buena elección? Porque se basa en verificar múltiples subsistemas. También proporciona un comando lo suficientemente simple para trabajar: el resultado es verdadero o falso.Por lo tanto, tenemos una herramienta de detección de presencia, pero ¿qué pasa con la lógica? Necesitamos sondear la presencia y detectar cambios en el estado. Lo que podemos hacer es almacenar el estado de salida
on_ac_powery comparar continuamente el estado actual con lo que hemos guardado, una vez que cambia: enviar notificación, guardar el estado nuevamente y seguir comparando nuevamente, haciendo un bucle. La idea básica es el uso de banderas.En resumen, inicializamos una instantánea del estado y luego sondeamos continuamente el cambio desde la instantánea; Una vez que se produce el cambio, notifique y restablezca la instantánea.
fuente