Comment puis-je recevoir une notification à l'écran à l'aide de notify-osd lorsque je branche / débranche le chargeur?
battery
notification
notify-osd
kernel_panic
la source
la source
Réponses:
La commutation entre l'alimentation CA et l'alimentation par batterie doit générer un événement sur le bus système D-Bus . Exécutez
dbus-monitor --system
et regardez quels événements sont générés sur votre système.Si votre ordinateur est en cours d'exécution, vous recevez des notifications plus spécialisées de
upower -m
.Vous pouvez également obtenir des événements de
acpi_listen
.Exécutez ce script lorsque vous souhaitez commencer à voir les notifications ou ajoutez-le au démarrage de votre session.
la source
dbus
Certaines personnes ont signalé que ma solution udev précédente avait envoyé la notification trop de fois lorsque le câble d'alimentation était branché. Je n'ai pas pu reproduire cela, mais j'ai écrit ce script python pour utiliser dbus au lieu d'udev. Enregistrez-le sous forme de
.py
fichier quelque part sur votre disque dur. Marquez le fichier exécutable en exécutant:et ajoutez-le à vos applications de démarrage comme décrit ici . Ce script nécessite que le package
acpi
soit installé.udev
Avec un peu d'expérimentation (et un peu d'aide), j'ai pu utiliser une règle udev pour accomplir cela. Certaines personnes ont signalé qu'il envoyait parfois la notification plusieurs fois, mais je n'ai eu aucun problème. YMMV.
Créez un script avec le contenu suivant:
remplacer
some_user
par votre nom d'utilisateur. Marquez le fichier exécutable en exécutant:en remplaçant
/path/to/script.sh
par le chemin d'accès à l'endroit où vous avez enregistré le script.Créez ensuite un fichier dans
/etc/udev/rules.d
named10-power.rules
avec le contenu:remplaçant à nouveau
/path/to/script.sh
par le chemin d'accès au script que vous avez créé précédemment.Rechargez maintenant les règles udev en exécutant:
Débranchez le câble d'alimentation. Vous devriez recevoir une notification.
la source
XAUTHORITY
avec certains gestionnaires d'affichage tels que gdm.dbus-monitor
. Voir ma réponse.Source de script
Obtenir le script
Le script est également ajouté à mon github ; cette version sera mise à jour et développée un tout petit peu plus.
Vous pouvez l'obtenir en procédant comme suit:
sugo apt-get install git
cd /opt
git clone https://github.com/SergKolo/sergrep.git
Le script sera dans le
/opt/sergrep
répertoire, nomménotify_ac_change.sh
Concept de design
Les questions clés sont "Comment vérifier la présence de l'adaptateur secteur?" et "Comment détectons-nous les changements?"
Eh bien, ce problème a été résolu il y a longtemps par d'autres développeurs. Ubuntu est livré par défaut avec un script appelé on_ac_power , qui est stocké dans
/usr/bin/on_ac_power
. L'adaptateur d'alimentation peut être mentionné sous différents sous-systèmes du noyau (ACPI ou APM), mais ce script simplifie notre travail - les auteurs ont couvert de nombreuses variantes possibles. Il ne renvoie que l'état de sortie, il est donc approprié pour une utilisation dans lesif
instructions.Pourquoi est
on_ac_power
-ce un bon choix? Parce qu'il repose sur la vérification de plusieurs sous-systèmes. Il fournit également une commande suffisamment simple pour fonctionner - le résultat est vrai ou faux.Nous avons donc un outil de détection de présence, mais qu'en est-il de la logique? Nous devons interroger la présence et détecter les changements dans l'état. Ce que nous pouvons faire est de stocker l'état de sortie
on_ac_power
et de comparer en permanence l'état actuel avec ce que nous avons enregistré, une fois qu'il change - envoyer une notification, enregistrer à nouveau l'état et continuer à comparer à nouveau, en boucle. L'idée de base est l'utilisation de drapeaux.En bref, nous initialisons un instantané de l'état, puis nous interrogeons continuellement les changements à partir de l'instantané; une fois le changement effectué - notifiez et réinitialisez l'instantané.
la source