Hallo Liste, an Rechner mit USV soll auf der X-Oberfläche mittels Xdialog ein Warnhinweis angezeigt werden, wenn die USV einspringen muss, weil die Spannung ausgefallen ist. Das Ganze funktioniert auch schon, apcupsd schickt die Meldung ab und sie wird angezeigt. Leider ist das Ganze aber schwarz auf hellgrau und fällt nicht besonders ins Auge. Ich würde nun gern ein oder zwei Zeilen des Hinweises irgendwie hervorheben, z.B. durch Einfärben entw. des Textes oder des Zeilenhintergrundes oder Blinken des Textes etc.. Leider habe ich dazu nichts Passendes gefunden. In der Variante für die Konsole (dialog) gibt es ja den Schalter --color, über den dann in den Text eingebettet Steuersequenzen ausgewertet werden, aber das hat bei Xdialog leider nicht funktioniert. Es gibt wohl auch noch die Möglichkeit eines rc-files, aber da kann nur die ganze Anzeige geändert werden, und nicht einzelne Zeilen. Da es sich um ein entferntes System mit einem embedded Linux handelt, kann nichts Neues installiert werden, es geht also wirklich nur um bzw. mit Xdialog. Gibts noch irgendeinen Tipp? Danke schonmal, Jens -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 30. April 2007 schrieb Jens Nixdorf: Hallo Jens,
Gibts noch irgendeinen Tipp? Danke schonmal,
Versuche doch mal die ESC-Sequencen. Ich kenne XDialog nicht, daher weiss ich auch nicht, ob es was bringt. In der bash benutze ich sowas fuer ein kleines Lotto-Programm. esc="\033" gruen="${esc}[1;32m" rot="${esc}[1;31m" norm="${esc}[m\017" zB.: echo -e "\033[1;31m" #Ausgabe in rot echo -e "\033[1;32m" #Ausgabe in gruen (Nur Ausgabe in gruen, danach zuruecksetzen) echo -e "\033[1;32m Das ist ein Test \033[m\017" MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 30. April 2007 schrieb Thomas Moritz:
Am Montag, 30. April 2007 schrieb Jens Nixdorf:
Hallo Jens,
Gibts noch irgendeinen Tipp? Danke schonmal,
Versuche doch mal die ESC-Sequencen. Ich kenne XDialog nicht, daher weiss ich auch nicht, ob es was bringt. In der bash benutze ich sowas fuer ein kleines Lotto-Programm.
esc="\033" gruen="${esc}[1;32m" rot="${esc}[1;31m" norm="${esc}[m\017"
zB.: echo -e "\033[1;31m" #Ausgabe in rot echo -e "\033[1;32m" #Ausgabe in gruen
(Nur Ausgabe in gruen, danach zuruecksetzen) echo -e "\033[1;32m Das ist ein Test \033[m\017"
Danke. Funktioniert leider nicht. Die Escapesequenzen funktionieren sogar gar nicht, dafür zumindest in der Konsolenversion "Z-Seguenzen". Hier noch etwas ausführlicher: In der Konsole funktioniert bspw. folgender Befehl: dialog --colors --title "Test" --msgbox "Das ist ein Test \n \Z1 Zeile 2 \n \Zn Zeile 3" 7 30 Das gibt eine Messagebox mit dem Titel "Test" und drei Zeilen, wovon die mittlere rot eingefärbt ist. Eingeleitet wird die Färbung durch \Z1 (rot) und zurückgesetzt durch \Zn. Und genau das geht unter X (dann mit Xdialog) eben leider nicht. Mit: Xdialog --colors --title "Test" --msgbox "Das ist ein Test \n \Z1 Zeile 2 \n \Zn Zeile 3" 7 30 bekommt man leider nur einen Farbauswahldialog. Hmpf. mfG, Jens -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 30. April 2007 schrieb Jens Nixdorf: Hallo Jens,
Versuche doch mal die ESC-Sequencen. Ich kenne XDialog nicht, daher weiss ich auch nicht, ob es was bringt. In der bash benutze ich sowas fuer ein kleines Lotto-Programm.
esc="\033" gruen="${esc}[1;32m" rot="${esc}[1;31m" norm="${esc}[m\017"
zB.: echo -e "\033[1;31m" #Ausgabe in rot echo -e "\033[1;32m" #Ausgabe in gruen
(Nur Ausgabe in gruen, danach zuruecksetzen) echo -e "\033[1;32m Das ist ein Test \033[m\017"
Danke. Funktioniert leider nicht. Die Escapesequenzen funktionieren sogar gar nicht, dafür zumindest in der Konsolenversion "Z-Seguenzen". Hier noch etwas ausführlicher: In der Konsole funktioniert bspw. folgender Befehl:
Muss es ein Dialog sein? Warum laesst Du nicht ein xterm aufpoppen. Du kannst Dir doch die PID zum spaeteren automatischen Schliessen merken, falls niemand in bestimmter Zeit darauf reagiert. Um das Script nicht anzuhalten kannst Du das xterm auch in den Hintergrund schicken. Somit kannst Du Farbe und Groesse per ESC-Seq selbst bestimmen und alle Moeglichkeiten der Shell ausschoepfen. Auf einzelne Tasten zu reagieren ist hier auch kein Problem: read -n 1 -p "Press any key" taste Das ist jetzt keine direkte Loesung zu Deinem Problem, vielmehr eine Idee, wie man das Problem umgehen koennte :-) MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Dienstag, 1. Mai 2007 schrieb Thomas Moritz:
Muss es ein Dialog sein? Warum laesst Du nicht ein xterm aufpoppen. Du kannst Dir doch die PID zum spaeteren automatischen Schliessen merken, falls niemand in bestimmter Zeit darauf reagiert. Um das Script nicht anzuhalten kannst Du das xterm auch in den Hintergrund schicken. Somit kannst Du Farbe und Groesse per ESC-Seq selbst bestimmen und alle Moeglichkeiten der Shell ausschoepfen. Auf einzelne Tasten zu reagieren ist hier auch kein Problem:
read -n 1 -p "Press any key" taste
Das ist jetzt keine direkte Loesung zu Deinem Problem, vielmehr eine Idee, wie man das Problem umgehen koennte :-)
Die Idee hatte ich auch mal, aber anfangs verworfen, weil mir der Aufwand Fenster zu positionieren und PID merken etc. zu hoch erschien. Das hat sich inzwischen relativiert, weil das Xdialog-Ergebnis zwar einfacher zu erreichen ist, aber dafür eben nicht befriedigt. Und jetzt wo Du es schreibst, und mir noch dazu quasi eine Anleitung für Escape-Sequenzen mitlieferst, werde ich mir das nochmal durch den Kopf gehen lassen. Danke :-) mfG, Jens -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Die, 01 Mai 2007, Jens Nixdorf schrieb:
Die Idee hatte ich auch mal, aber anfangs verworfen, weil mir der Aufwand Fenster zu positionieren und PID merken etc. zu hoch erschien.
Ein xterm -e 'scriptname' wird sich automatisch schließen, wenn das script fertig ist. -dnh -- IMHO: "In meinem humpelnden Oberstübchen" ((c) Gerd Hölscher). -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 2. Mai 2007 schrieb David Haller: Hallo David,
Am Die, 01 Mai 2007, Jens Nixdorf schrieb:
Die Idee hatte ich auch mal, aber anfangs verworfen, weil mir der Aufwand Fenster zu positionieren und PID merken etc. zu hoch erschien.
Ein xterm -e 'scriptname' wird sich automatisch schließen, wenn das script fertig ist.
Da die urspruengliche Fragestellung in Richtung Xdialog ging, bin ich davon ausgegangen, das zusaetzliche Fenster als Info oder Warn aufpoppen sollen und das eigentliche Script im Hintergrund werkelt. In diesem Fall musst Du das (Warn/Info)-xterm fuer eine gewisse Zeit offen halten, oder auf Tastendruck warten. Es wuerde sich also anbieten, das (Warn/Info)-xterm im Hintergrund zu starten und sich die PID zu merken. Die eigene PID kann man sich doch jederzeit aus $$ holen. Andere holt man sich mit pidof. Hier sehe ich kein Problem. MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 2. Mai 2007 schrieb Thomas Moritz:
Ein xterm -e 'scriptname' wird sich automatisch schließen, wenn das script fertig ist.
Da die urspruengliche Fragestellung in Richtung Xdialog ging, bin ich davon ausgegangen, das zusaetzliche Fenster als Info oder Warn aufpoppen sollen und das eigentliche Script im Hintergrund werkelt.
Genau so siehts aus. An den Geräten ist eine USV angeschlossen, und wenn die anspringt, dann soll diese Meldung kommen, damit die User nicht denken, dass das System einfach so hängen geblieben ist und da vlt. noch dran "rumreparieren". Naja, nach Euren Tipps kombiniere ich eben beides: Ich lasse ein xterm -e aufpoppen und mache da drin ein "dialog --timeout X --infobox ...", dann gehts nach X Sekunden wieder zu, oder eine msgbox, die geht nach Tastendruck zu... Danke Euch beiden... mfG, Jens -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 2. Mai 2007 schrieb Jens Nixdorf: Hallo Jens,
Genau so siehts aus. An den Geräten ist eine USV angeschlossen, und wenn die anspringt, dann soll diese Meldung kommen, damit die User nicht denken, dass das System einfach so hängen geblieben ist und da vlt. noch dran "rumreparieren".
Naja, nach Euren Tipps kombiniere ich eben beides: Ich lasse ein xterm -e aufpoppen und mache da drin ein "dialog --timeout X --infobox ...", dann gehts nach X Sekunden wieder zu, oder eine msgbox, die geht nach Tastendruck zu...
Warum so komplitzert? Schau Dir mal den folgenden "EINZEILER" an. Der gibt Text in bunt aus. Da gibt es doch nicht viel zu Fummeln. Solltest Du die Befehlszeile umgebrochen sehen, musst Du den Zeilenumbruch zur Ansicht ausschalten. xterm -e 'echo -e "\033[1;31mAchtung!\033[m\017\nEs ist nur ein Stromausfall!\n\033[1;31mBitte nichts anfassen!\033[m\017"; read -n1 -p "Taste druecken"' Per Drag&Drop kannst Du die Zeile in einer Konsole als Demo starten. Nun brauchst Du nur noch die Optik und den Text anzupassen. ESC-Sequenzen fuer den For/-Background solltest Du leicht finden. MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Jens, mir war gerade mal so :-) <schnipp---demo script start---> #!/bin/bash set -e esc="\033" old="$esc[m\017" l1="$esc[5;31m ###$old Demo $esc[5;31m###$old" l2="$esc[5;31m ###$old Demo $esc[5;31m###$old" l3="$esc[5;31m ###$old Demo $esc[5;31m###$old" l4="$esc[5;31m ###$old Demo $esc[5;31m###$old" l5="$esc[5;31m ###$old Demo $esc[5;31m###$old" l6="$esc[5;31m $old Demo $esc[5;31m $old" l7="$esc[5;31m ###$old Demo $esc[5;31m###$old" l8="$esc[5;31m ###$old Demo $esc[5;31m###$old" clear echo -e "\n\n$l1\n$l2\n$l3\n$l4\n$l5\n$l6\n$l7\n$l8\n\n" echo -e " $esc[40;36m$esc[5;36mman console_codes lesen$old\n\n" read -n1 -p "Zum Beenden drueckst Du die AnyKey-Taste" exit <schnapp---demo script end---> MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
David Haller
-
Jens Nixdorf
-
Thomas Moritz