Hallo,
ich benutze fvwm2 als Fenstermanager und habe mir einen keyboard shortcut (in .fvwm2rc) gelegt, der galeon als webbrowser startet. Galeon wiederum startet ein xterm mit mutt, wenn eine mail über einen link versendet werden soll. Dieses xterm kennt aber leider keine Umlaute. Dies liegt offenbar daran, dass fvwm initialisiert wird, bevor irgendwelche Umgebungsvariablen o.ä. eingestellt werden. Wenn ich in .fvwm2rc einen shortcut auf xterm lege, sind alle Umlaute da. Wenn ich von diesem Terminal galeon starte und dann einen mail link aufrufe, funktioniert alles bestens.
Kann mir jemand sagen, wie ich das korrigieren kann? Ich denke, es muss nur beim Starten von fvwm2 irgendeine .irgendwas Datei in meinem home directory gesourced werden. Nur welche?
-- Orm
Once upon a time, I heard Orm Finnendahl say:
ich benutze fvwm2 als Fenstermanager
Ui!
Dieses xterm kennt aber leider keine Umlaute.
Vermutlich wird das selbe passieren, wenn Du aus dem Menü direkt ein XTerm öffnest?
Generell kommt es aber auch ein bißchen darauf an, wie Du Deinen fvwm startest, denn mit startx von der Console sollte Dir das nicht passieren, wenn LC_CTYPE bereits auf selber richtig eingestellt wurde.
Startest Du den fvwm aus dem XDM oder einem anderen *DM, dann wird vermutlich irgendwann beim Starten Deine ~/.xsession gelesen und ausgeführt (das kannst Du bei Debian in /etc/Xsession und /etc/Xsession.d/* nachlesen). In dieser Datei müßtest Du dann eben (Shell-abhängig, aber vermutlich in Bash-Syntax) LC_CTYPE setzen.
hej så länge.
Am Mittwoch, den 02. April 2003 um 13:05:36 Uhr (+0200) schrieb Stefan Berthold:
Vermutlich wird das selbe passieren, wenn Du aus dem Menü direkt ein XTerm öffnest?
Nein. Das funktioniert einwandfrei.
Startest Du den fvwm aus dem XDM oder einem anderen *DM, dann wird vermutlich irgendwann beim Starten Deine ~/.xsession gelesen und ausgeführt (das kannst Du bei Debian in /etc/Xsession und /etc/Xsession.d/* nachlesen). In dieser Datei müßtest Du dann eben (Shell-abhängig, aber vermutlich in Bash-Syntax) LC_CTYPE setzen.
Mein xterm, in dem es funktioniert, und das direkt über fvwm-menü aufgerufen wurde, sagt zu $LC_CTYPE "de_DE".
Das Gleiche sagt ein in mutt eingebettetes shell-terminal (über emacs als subshell aufgerufen). Trotzdem werden Umlaute als Fragezeichen dargestellt.
Auszug:
<...> orm@grisey:/tmp$ echo $LC_CTYPE de_DE orm@grisey:/tmp$ ??? <...>
Die letzten drei Fragezeichen sind als "ä", "ö", und "ü" getippt worden.
Zusammenfassend:
Aufruf in der .fvwm2rc | Ergebnis der Eingabe von "äöü" | Exec xterm | äöü Exec xterm -e mutt | ??? Exec galeon | ??? (wenn mutt als subprozess gestartet wird)
von einem durch fvwm-menü gestarteten xterm aus, in dem die Umlaute funktionieren:
xterm -e mutt | äöü |
Dazu kann ich jetzt nur ??? sagen...
-- Orm
Once upon a time, I heard Orm Finnendahl say:
Vermutlich wird das selbe passieren, wenn Du aus dem Menü direkt ein XTerm öffnest?
Nein. Das funktioniert einwandfrei.
Ist ja auch Blödsinn, weil Du LC_CTYPE in der Shell-Konfiguration festlegst. Wenn Du also ein Terminal startest und darin die Shell, dann läuft es. Wenn Du allerdings ein Terminal startest ohne die Shell darin und an dessen Stelle ein Programm wie mutt ausführst, dann setzt auch niemand die Umgebungsvariablen.
Aufruf in der .fvwm2rc | Ergebnis der Eingabe von "äöü" | Exec xterm | äöü
Der erste child-process des XTerms ist in diesem Fall die diensthabende Shell, die mit der Initialisierung die Umgebungsvariablen setzt.
Exec xterm -e mutt | ???
mutt ist der erste child-process ist und niemand hat vorher irgendwas gesetzt.
Exec galeon | ??? (wenn mutt als subprozess gestartet wird)
Dito, niemand setzt Umgebungsvariablen, also weder galeon, noch mutt und XTerm auch nicht.
von einem durch fvwm-menü gestarteten xterm aus, in dem die Umlaute funktionieren:
xterm -e mutt | äöü
Das ist auch klar, weil Du zuerst in einem XTerm die Shell startest, diese die Variablen setzt und an alle ihre child-processes weitergibt, also auch im Speziellen an den child-process "xterm -e mutt", welcher dann mit einer korrekten Umgebung läuft.
Hast Du schonmal probiert, die ~/.xsession zu bearbeiten? Also beispielsweise:
$ echo 'set LC_CTYPE="de_DE"' > .xsession
So müßte schon der fvwm die Umgebungsvariablen kennen und an jeden seiner child-processes, also auch an jedes aus dem Menü gestartete XTerm weitergeben, selbst wenn darin keine Shell ausgeführt wird.
hej så länge.
Am Mittwoch, den 02. April 2003 um 14:02:13 Uhr (+0200) schrieb Stefan Berthold:
Ist ja auch Blödsinn, weil Du LC_CTYPE in der Shell-Konfiguration festlegst. Wenn Du also ein Terminal startest und darin die Shell, dann läuft es. Wenn Du allerdings ein Terminal startest ohne die Shell darin und an dessen Stelle ein Programm wie mutt ausführst, dann setzt auch niemand die Umgebungsvariablen.
Vielen Dank für die ausführliche Erklärung!
Hast Du schonmal probiert, die ~/.xsession zu bearbeiten? Also beispielsweise:
$ echo 'set LC_CTYPE="de_DE"' > .xsession
So müßte schon der fvwm die Umgebungsvariablen kennen und an jeden seiner child-processes, also auch an jedes aus dem Menü gestartete XTerm weitergeben, selbst wenn darin keine Shell ausgeführt wird.
Habe ich probiert. Funktioniert leider nicht. fvwm2 lädt übrigens bei der Initialisierung explizit .profile und erhält dadurch die ganzen Umgebungsvariablen von LC_*.
Kurz noch einmal meine Sequenz nach Starten eines xterms über fvwm2-menü:
orm@grisey:~$ echo $LC_CTYPE de_DE orm@grisey:~$ (Versuch, Umlaute zu tippen, resultieren in beeps) orm@grisey:~$ bash orm@grisey:~$ öüä
Soweit, so gut verstanden. Ich bin vermutlich zur Zeit etwas gehirntot, aber ich verstehe nicht, warum $LC_CTYPE bekannt ist, aber Umlaute nicht gehen. Könnte es sein, daß nicht $LC_CTYPE verantwortlich ist?
-- Orm
On 02.04.03 Orm Finnendahl (finnendahl@folkwang-hochschule.de) wrote:
Kurz noch einmal meine Sequenz nach Starten eines xterms über fvwm2-menü:
orm@grisey:~$ echo $LC_CTYPE de_DE orm@grisey:~$ (Versuch, Umlaute zu tippen, resultieren in beeps) orm@grisey:~$ bash orm@grisey:~$ öüä
Soweit, so gut verstanden. Ich bin vermutlich zur Zeit etwas gehirntot, aber ich verstehe nicht, warum $LC_CTYPE bekannt ist, aber Umlaute nicht gehen. Könnte es sein, daß nicht $LC_CTYPE verantwortlich ist?
Dann tipp doch mal "locale" anstatt "echo $LC_CTYPE" und vergleiche die Ausgabe. Irgendwo müssen doch Unterschiede sein.
H.
Am Mittwoch, den 02. April 2003 um 16:55:38 Uhr (+0200) schrieb Hilmar Preusse:
Dann tipp doch mal "locale" anstatt "echo $LC_CTYPE" und vergleiche die Ausgabe. Irgendwo müssen doch Unterschiede sein.
nach Starten des xterm (bei nicht funktionierenden Umlauten):
orm@grisey:~$ locale > /tmp/locale_xterm orm@grisey:~$ bash orm@grisey:~$ äöü orm@grisey:~$ locale > /tmp/locale_xterm_bash orm@grisey:~$ diff /tmp/locale_xterm{,_bash} orm@grisey:~$
??? (mein Sohn hört gerade die drei Fragezeichen. Vielleicht sollte man die mal fragen? Die lösen doch angeblich jeden Fall)
Orm
P.S.: output von locale in beiden Fällen:
orm@grisey:~$ cat /tmp/locale_xterm LANG=de_DE LC_CTYPE="de_DE" LC_NUMERIC="de_DE" LC_TIME="de_DE" LC_COLLATE="de_DE" LC_MONETARY="de_DE" LC_MESSAGES="de_DE" LC_PAPER="de_DE" LC_NAME="de_DE" LC_ADDRESS="de_DE" LC_TELEPHONE="de_DE" LC_MEASUREMENT="de_DE" LC_IDENTIFICATION="de_DE" LC_ALL=de_DE
On 02.04.03 Orm Finnendahl (finnendahl@folkwang-hochschule.de) wrote:
Moin,
nach Starten des xterm (bei nicht funktionierenden Umlauten):
orm@grisey:~$ locale > /tmp/locale_xterm orm@grisey:~$ bash orm@grisey:~$ äöü
Hmm. Nach dem starten des xterms läuft da drin aber eine bash, oder?
H.
lug-dd@mailman.schlittermann.de