# kdialog oder Notebookschutz, wenn Akku leer.

## musv

Hallo, 

ich bin dabei, so die letzten kleinen Dinge bei meinem neuen Notebook zu konfigurieren. Jetzt bin ich an den Punkt gekommen, wo ich gern einen Schutz einbauen würde, dass sich das Notebook nicht einfach ausschaltet, wenn der Akku leer ist und kein Netztteil dransteckt. Dazu hab ich mir ein Script gebastelt, was prüft:

Kein Netzteil dran, Restkapazität unter 1500 mWh -> Warnmeldung ausgeben

Kein Netzteil dran, Restkapazität unter 1000 mWh -> Rechner runterfahren

Das Ding speicher in in /usr/local/sbin ab und will das per Cron-Job alle 2 min aufrufen. Es ist mir wichtig, dass unabhängig vom eingeloggten Nutzer die Meldung erscheint. Dazu will ich die Warnmeldung in einen kdialog reinschreiben, der penetranterweise aufpoppt und den Nutzer nötigt, "ok" zu drücken (Modaldialog). Das Auslesen funktioniert schon mal (/proc/acpi/battery und /proc/acpi/ac_adapter). Was fehlt ist noch der Kdialog.

Fragen:

Ist das Ganze überhaupt sinnvoll? Oder ist das dämlich, das Notebook alle 2 min immer dieselbe Datei lesen zu lassen? Welche besseren Möglichkeiten gäb es?

Bei der Dialogausgabe müsste root den Dialog auf DISPLAY=:0.0 schreiben, egal welcher Benutzer angemeldet ist. Leider scheiter ich an der Syntax für das Ding. Hat jemand sowas schon mal gemacht? Sofern ich ein GUI mit Root-Rechten ausgeben will, muss ich erst "xhost +" eingeben. Kann ich das irgendwie zumindest für root abstellen? 

----------

## Hollowman

Hi

Hast du KDE als Desktop? Wenn ja dann installiere mal PowerDevil falls du das nicht schon gemacht hast. Der macht unter anderem genau das für dich. Ich benutze das hier aufm Laptop. Das funktioniert prima.

Sebastian

----------

## musv

KDE-Desktop verwende ich nicht. Hab e16 im Einsatz.

Das Teil sollte auch eher user-unabhängig laufen.

----------

## Hollowman

Dein Script hat einen Nachteil.

Legst du deine Platte schlafen wenn Sie eine bestimmte Zeit nicht gebraucht wird? Wenn ja wird das mit deinem Script nicht mehr gehen.

Ansonsten würde ich das auch so machen.

Kdialog:

kdialog --msgbox "Akku leer"

Muss unter dem Nutzer laufen der gerade die KDE auf hat. Den solltest du mit "w", "grep" und "cut" raus bekommen. Ob das bei e16 anders ist weiß ich nicht. Wenn ja kannst du dir das sparen und das kdialog als root starten.

Sebastian

----------

## mrsteven

Über ConsoleKit (falls installiert) und DBUS kannst du herausfinden, welcher Benutzer gerade angemeldet ist, welches Display er verwendet usw. Mittels qdbusviewer kannst du dir die Methoden von ConsoleKit ausgeben lassen. Skripten lässt sich das dann über qdbus oder dbus-send.

Ich weiß allerdings gerade nicht, was diese DBUS-Calls zurückliefern, wenn niemand angemeldet ist.

Eine andere Idee wäre noch, das ganze im Textmodus auf einer virtuellen Konsole zu machen. Mit chvt 11 kannst du z.B. auf die 11. Konsole wechseln, mit chvt 7 geht's normalerweise wieder auf den ersten X-Server zurück.  Die Warnung selbst kannst du mit dialog anzeigen.

Mehr Tipps habe ich da aber gerade auch nicht.

----------

