[gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
[gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Hallo,
ich benutze Xfce und dort als Uhr im Panel orage. Je nach Displayformat habe ich das Xfce-Panel an der Seite statt oben oder unten. Um Platz zu sparen und trotzdem eine aufrechte Schrift zu haben, stecke ich dann zwei Orage-Plugins übereinander ins Panel, wobei das obere die Stunden (%H) und das untere die Minuten (%M) anzeigt.
Das funktioniert an sich gut. Nun habe ich aber ein Convertible (Notebook mit um 360° umklappbarem Display) das ich mal im Quer- und mal im Hochformat verwende. Das Panel wird beim Umschalten scriptgesteuert jeweils an die kurze Seite des Displays gepappt. Daher passt dieser statische Orage-Workaround nicht mehr wirklich, weil dann im Hochformat (also bei horizontalem Panel) beide Orage-Plugins nebeneinander statt übereinander angezeigt werden, was kostbaren Platz kostet. Nun dachte ich, ich kann ein einziges Orage-Plugin verwenden und im Format-String einen Zeilenumbruch definieren (%H\n%M), aber das "\n" wird literal dargestellt, auch wenn ich den Backslash zusätzlich escape (\\n).
Mag ja sein, dass Orage keine Zeilenumbrüche kann und das wäre auch kein Beinbruch, denn so wichtig ist es nun auch wieder nicht. Allerdings legt [1] nahe, dass das doch ginge und wohl ganz einfach sei. Leider steht da aber nicht, wie man es macht.
Hat jemand eine Idee?
[1] https://ubuntuforums.org/showthread.php?p=8638947
ich benutze Xfce und dort als Uhr im Panel orage. Je nach Displayformat habe ich das Xfce-Panel an der Seite statt oben oder unten. Um Platz zu sparen und trotzdem eine aufrechte Schrift zu haben, stecke ich dann zwei Orage-Plugins übereinander ins Panel, wobei das obere die Stunden (%H) und das untere die Minuten (%M) anzeigt.
Das funktioniert an sich gut. Nun habe ich aber ein Convertible (Notebook mit um 360° umklappbarem Display) das ich mal im Quer- und mal im Hochformat verwende. Das Panel wird beim Umschalten scriptgesteuert jeweils an die kurze Seite des Displays gepappt. Daher passt dieser statische Orage-Workaround nicht mehr wirklich, weil dann im Hochformat (also bei horizontalem Panel) beide Orage-Plugins nebeneinander statt übereinander angezeigt werden, was kostbaren Platz kostet. Nun dachte ich, ich kann ein einziges Orage-Plugin verwenden und im Format-String einen Zeilenumbruch definieren (%H\n%M), aber das "\n" wird literal dargestellt, auch wenn ich den Backslash zusätzlich escape (\\n).
Mag ja sein, dass Orage keine Zeilenumbrüche kann und das wäre auch kein Beinbruch, denn so wichtig ist es nun auch wieder nicht. Allerdings legt [1] nahe, dass das doch ginge und wohl ganz einfach sei. Leider steht da aber nicht, wie man es macht.
Hat jemand eine Idee?
[1] https://ubuntuforums.org/showthread.php?p=8638947
Zuletzt geändert von hikaru am 30.08.2020 11:26:00, insgesamt 1-mal geändert.
Re: Orage-Uhr: Zeilenumbruch im Formatstring?
Eigentlich sagt der verlinkte Thread doch gar nichts aus. Da schreibt nur einer, dass man das andere Plugin nehmen soll, weil das ganz viel koenne, aber konkret wird er in keiner Weise. Vermutlich hat er gar nicht verstanden was eigentlich gesucht wird. So jedenfalls kommt es mir vor, denn wie soll man in einer Konfigurationsoberflaeche, die er erwaehnt, Zeilenumbrueche im Anzeigeformat einstellen. Das scheint mir alles nicht schluessig zu sein.hikaru hat geschrieben:30.08.2020 10:43:18Allerdings legt [1] nahe, dass das doch ginge und wohl ganz einfach sei. Leider steht da aber nicht, wie man es macht.
[1] https://ubuntuforums.org/showthread.php?p=8638947
Wenn das ``\n'' literal dargestellt wird, dann bringt zusaetzliches Escapen nichts. Wenn es literal dargestellt wird, dann ist es bereits maximal escapt, sprich, der String wird wie in Singlequotes interpraetiert. Backslashes scheinen keine Escape-Funktion mehr zu haben.Nun dachte ich, ich kann ein einziges Orage-Plugin verwenden und im Format-String einen Zeilenumbruch definieren (%H\n%M), aber das "\n" wird literal dargestellt, auch wenn ich den Backslash zusätzlich escape (\\n).
Da die Zeichen literal verwendet werden musst du versuchen einen literalen Zeilenumbruch einzubauen. Bei einer Textarea waere das einfach, bei einem einzeiligen Textfeld wuerde ich mal mit sowas wie ``^V^M'' ansetzen oder ein `^M' aus dem vi reinkopieren. Vielleicht nicht ueber die Konfigurationsoberflaeche, sondern direkt in der Datei, in der die Einstellungen gespeichert sind.
Eine andere Moeglichkeit waere noch, dass das Programm ein selbstdefiniertes Zeichen hat, das es mit einem Newline ersetzt. Das waere aber anwendungsspezifisch und koennte nur von dessen Dokumentation, Code oder Entwicklern beantwortet werden.
Wenn der Formatstring in einer allgemeinen printf(3)-Art gehalten waere (was vermutlich nicht der Fall ist, wenn Backslash-Escapes nicht funktionieren), dann koennte moeglicherweise sowas wie ``%0x0A'' funktionieren.
Es koennte auch sein, dass es grundsaetzlich unmoeglich ist, weil das Widget nur einzeiligen Text anzeigen kann. (Je laenger ich darueber nachdenke, desto wahrscheinlicher scheint mir dieser Fall zu sein.)
Das waren nun alle Ideen auf die ich gekommen bin.
Use ed once in a while!
Re: Orage-Uhr: Zeilenumbruch im Formatstring?
Danke! Das funktioniert. Ich habe einen Zeilenumbruch aus dem Texteditor in den Formatdialog von Orage kopiert und kriege so eine zweizeilige Anzeige.
Re: [gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Re: [gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Natuerlich geht's uns allen immer wieder mal so. Zumeist dann wenn wir vergessen strukturiert und langsam zu denken. Wir eilen in Gedanken dahin, statt Schritt fuer Schritt zu machen. Haettest du dich gefragt, *warum* der Backslash literal angezeigt wird und was das *bedeutet*, dann haettest du die Antwort selber gefunden. Das ist der Punkt an dem man ein Stueck zurueck treten muss, einmal ums Haus oder durch die Flure laufen muss, und danach mit Abstand und neuer Perspektive neu auf das Problem schauen muss ... ganz langsam und strukturiert. Die Fragen ``Was genau passiert hier?'' und ``Warum passiert das bzw. was bedeutet das?'' sind die wichtigen. Man muss es also erklaeren. Das ist wobei das Teddybaer-Debugging (oder Rubber-Duck-Debugging fuer die Moderneren unter uns) hilft.
... oder man fragt im Forum und macht damit den Mitlesenden eine Freude.
Use ed once in a while!
Re: [gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Warum benutzt du nicht einfach '%n'
Re: [gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Heisst das, du hast nicht nur den Wald nicht gesehen, sondern auch die Manpage/Dokumentation nicht gelesen? Oder wo haette man diese Information finden koennen?
Use ed once in a while!
Re: [gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Die Manpage ist leider nicht sonderlich hilfreich. Formatierung wrd dort nicht behandelt. Die Manpage verweist zwar auf eine URL bei xfce.org [1], aber die Seite gibt es nicht mehr. Auch "orage -?" ist nicht erhellend.
Die einzigen Hinweise zur Formatierung gibt es im Einstellungsdialog von Orage selbst. Dort werden aber nur dynamische Variablen behandelt, keine "Konstanten". Daher kam ich nicht darauf, dass ein Newline ebenfalls mit "%" eingeleitet wird. Gut, ich hätte dem Hinweis folgen können, dass Orage strftime benutzt und wäre dann fündig geworden. [2] Aber wie gesagt: Wald und Bäume.
[1] http://www.xfce.org/projects/orage/
[2] https://man7.org/linux/man-pages/man3/strftime.3.html
Die einzigen Hinweise zur Formatierung gibt es im Einstellungsdialog von Orage selbst. Dort werden aber nur dynamische Variablen behandelt, keine "Konstanten". Daher kam ich nicht darauf, dass ein Newline ebenfalls mit "%" eingeleitet wird. Gut, ich hätte dem Hinweis folgen können, dass Orage strftime benutzt und wäre dann fündig geworden. [2] Aber wie gesagt: Wald und Bäume.
[1] http://www.xfce.org/projects/orage/
[2] https://man7.org/linux/man-pages/man3/strftime.3.html
Re: [gelöst] Orage-Uhr: Zeilenumbruch im Formatstring?
Also ist ja kaum zu erwarten, dass du es haettest wissen koennen.hikaru hat geschrieben:30.08.2020 14:55:11Die Manpage ist leider nicht sonderlich hilfreich. Formatierung wrd dort nicht behandelt. Die Manpage verweist zwar auf eine URL bei xfce.org [1], aber die Seite gibt es nicht mehr. Auch "orage -?" ist nicht erhellend.
Die einzigen Hinweise zur Formatierung gibt es im Einstellungsdialog von Orage selbst. Dort werden aber nur dynamische Variablen behandelt, keine "Konstanten". Daher kam ich nicht darauf, dass ein Newline ebenfalls mit "%" eingeleitet wird.
Schau an, da habe ich dann auch wieder was gelernt.Gut, ich hätte dem Hinweis folgen können, dass Orage strftime benutzt und wäre dann fündig geworden. [2]
[2] https://man7.org/linux/man-pages/man3/strftime.3.html
Use ed once in a while!