Titel von xterm aendern
Hi Ich würde gerne um die Übersicht bei mehreren xterms zu verbessern den Titel eines laufenden xterms ändern. In der manpage (SuSE 8.1) wird auf ein file ctlseqs.ms verwiesen. Das file habe ich gar nicht und man ein grep auf ARCHIVES.gz geht auch leer aus. Ich habe mal gegoogelt. Dabei habe ich auch diverse Tabellen mit control-sequences ungeheuer viel Text über [7|8]bit-control characters und vtxxx- und tektronix modes gefunden. Aber irgendwie werde ich daraus nicht schlau und der Titel ändert sich auch nicht. :-( 1. Wie finde ich heraus in welchem Mode mein xterm denn überhaupt läuft? 2. Wie ändere ich den Titel? 3. Gibt es auch eine in eine Skript integrierbare Kommandozeile dazu? mfg Axel
Am Donnerstag, 29. Januar 2004 13:57 schrieb Axel Heinrici:
3. Gibt es auch eine in eine Skript integrierbare Kommandozeile dazu?
Moin Axel, Mir fällt zu dem Thema eine frühere mail aus der xfce Liste ein. Da wollte jemand eine Uhr in der Taskleiste haben. Jemand anders hat folgenden Vorschlag gemacht: while true; do echo -ne "\033]0;`date +%T`\007" sleep 1 done Der code schreibt die Uhrzeit in die Titelzeile und aktualisiert sie sekündlich. Ist natürlich keine fertige Lösung für Dich weils ja eine Endlosschleife ist aber vielleicht hilfts Dir ja trotzdem. Very l33t ist es allemal ;-)
Hallo, * Axel Heinrici <axel.foley-beverly-hills@gmx.de> [2004-01-29 13:57]:
Ich würde gerne um die Übersicht bei mehreren xterms zu verbessern den Titel eines laufenden xterms ändern. In der manpage (SuSE 8.1) wird auf ein file ctlseqs.ms verwiesen. Das file habe ich gar nicht und man ein grep auf ARCHIVES.gz geht auch leer aus. Ich habe mal gegoogelt. Dabei habe ich auch diverse Tabellen mit control-sequences ungeheuer viel Text über [7|8]bit-control characters und vtxxx- und tektronix modes gefunden. Aber irgendwie werde ich daraus nicht schlau und der Titel ändert sich auch nicht. :-(
Keine Ahnung woher ich das habe aber vielleich hilft es Dir: http://www.bwalle.de/temp/Xterm-Title.dvi Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." -- Albert Einstein
Am Donnerstag, 29. Januar 2004 13:57 schrieb Axel Heinrici:
Hi
Ich würde gerne um die Übersicht bei mehreren xterms zu verbessern den Titel eines laufenden xterms ändern.
Ich kann mich dunkel erinnern das es zu diesem Thema mal einen Artikel in der Linux-User gab. Kannst ja mal bei denen auf der Homepage nachschauen. Soweit ich weiß kann man die älteren Ausgaben da auch online einsehen. Gruß, Björn.
Hallo On Thu, 2004-01-29 at 13:57, Axel Heinrici wrote:
Hi
Ich würde gerne um die Übersicht bei mehreren xterms zu verbessern den Titel eines laufenden xterms ändern. In der manpage (SuSE 8.1) wird auf ein file ctlseqs.ms verwiesen. Das file habe ich gar nicht und man ein grep auf ARCHIVES.gz geht auch leer aus. Ich habe mal gegoogelt. Dabei habe ich auch diverse Tabellen mit control-sequences ungeheuer viel Text über [7|8]bit-control characters und vtxxx- und tektronix modes gefunden. Aber irgendwie werde ich daraus nicht schlau und der Titel ändert sich auch nicht. :-(
1. Wie finde ich heraus in welchem Mode mein xterm denn überhaupt läuft? 2. Wie ändere ich den Titel? 3. Gibt es auch eine in eine Skript integrierbare Kommandozeile dazu?
mfg Axel
Man nehme: http://www.isri.unlv.edu/~slumos/hacks/index.html#xtctl Oder nach "xterm set title" googlen. -- Konstantin Get you SuSE RPMs at links2linux.de / packman.links2linux.org
Hallo, Am Thu, 29 Jan 2004, Axel Heinrici schrieb:
1. Wie finde ich heraus in welchem Mode mein xterm denn überhaupt läuft?
xrdb -query | grep -i xterm
2. Wie ändere ich den Titel?
RTFM: Bash-Prompt-HOWTO, man xterm xterm -title ... TTY="`tty`"; export TTY="${TTY##*[\/a-zA-Z]}" export PS1="\[\033]0;\u@\h[${TTY}]: \w\007\]${PS1}" Letzteres schreibt z.B. "user@host[TTY]: PFAD" in die Titlezeile. Weitere Beispiele finden sich im Bash-Prompt-HOWTO. Du kannst auch die Variable PROMPT_COMMAND verwenden, aber das verwendet schon der mc, d.h. da gibt's dann Aerger.
3. Gibt es auch eine in eine Skript integrierbare Kommandozeile dazu?
s.o. -dnh -- Perl is a mess. But that's okay, because the problem space is also a mess. -- Larry Wall
Guten Morgen On Thursday 29 January 2004 23:05, David Haller wrote:
Hallo,
1. Wie finde ich heraus in welchem Mode mein xterm denn überhaupt läuft?
xrdb -query | grep -i xterm
Ahh. *ratter_ratter* da war mal was ... da gibt es ja auch dieses file .Xdefaults. Nur leider kommt bei obiger Zeile nur ein "xterm*reverseVideo: False" heraus. Das ist auch in Einklang mit der .Xdefaults.
RTFM: Bash-Prompt-HOWTO, man xterm Ja RTFM, ich weiß. :-) Aber das Bash-Prompt-HOWTO muss man erstmal finden und dann muss man noch drauf kommen das es was mit der Sache zu tun hat, wenn man nach "xterm", "title" etc. sucht. :-)
xterm -title ...
Die man-page kenn' ich. Das hilft einem in nem laufenden xterm nur leider sehr wenig.
TTY="`tty`"; export TTY="${TTY##*[\/a-zA-Z]}" export PS1="\[\033]0;\u@\h[${TTY}]: \w\007\]${PS1}"
Letzteres schreibt z.B. "user@host[TTY]: PFAD" in die Titlezeile. Weitere Beispiele finden sich im Bash-Prompt-HOWTO. Du kannst auch die Variable PROMPT_COMMAND verwenden, aber das verwendet schon der mc, d.h. da gibt's dann Aerger.
Werde mir bei nächster Gelegenheit mal die Zeit nehmen nachzuvollziehen was obige zwei Zeilen genau machen. Danke für die Ausführliche Antwort, aber ich werde mir vermutlich erstmal mit der einfachereren "echo -ne "\033]0;xxx\007"-Variante behelfen. schönes Wochenende schonmal Axel
Hallo, Am Fri, 30 Jan 2004, Axel Heinrici schrieb:
On Thursday 29 January 2004 23:05, David Haller wrote:
1. Wie finde ich heraus in welchem Mode mein xterm denn überhaupt läuft?
xrdb -query | grep -i xterm
Ahh. *ratter_ratter* da war mal was ... da gibt es ja auch dieses file .Xdefaults. Nur leider kommt bei obiger Zeile nur ein "xterm*reverseVideo: False" heraus. Das ist auch in Einklang mit der .Xdefaults.
Hm. Dann laeuft xterm wohl mit den defaults. Steht TERM auf "xterm"?
RTFM: Bash-Prompt-HOWTO, man xterm Ja RTFM, ich weiß. :-) Aber das Bash-Prompt-HOWTO muss man erstmal finden und dann muss man noch drauf kommen das es was mit der Sache zu tun hat, wenn man nach "xterm", "title" etc. sucht. :-)
Interpretier das F als "Fine" :) Achso, die ctrlseqs.ms, auf die in der manpage hingewiesen, aber normal nicht mitinstalliert wird, ist auch interessant: ==== ESC ] Operating System Command (OSC: 0x9d) [..] OSC Ps ; Pt BEL Set Text Parameters Ps = 0 -> Change Icon Name and Window Title to Pt Ps = 1 -> Change Icon Name to Pt Ps = 2 -> Change Window Title to Pt ==== Anders formuliert: ESC]0;STRING\007 setzt den Fenstertitel und Iconnamen auf STRING, ESC]2;STRING\007 aendert nur den Fenstertitel.
xterm -title ...
Die man-page kenn' ich. Das hilft einem in nem laufenden xterm nur leider sehr wenig.
Ja.
TTY="`tty`"; export TTY="${TTY##*[\/a-zA-Z]}" export PS1="\[\033]0;\u@\h[${TTY}]: \w\007\]${PS1}"
Letzteres schreibt z.B. "user@host[TTY]: PFAD" in die Titlezeile. Weitere Beispiele finden sich im Bash-Prompt-HOWTO. Du kannst auch die Variable PROMPT_COMMAND verwenden, aber das verwendet schon der mc, d.h. da gibt's dann Aerger.
Werde mir bei nächster Gelegenheit mal die Zeit nehmen nachzuvollziehen was obige zwei Zeilen genau machen. Danke für die Ausführliche Antwort, aber ich werde mir vermutlich erstmal mit der einfachereren "echo -ne "\033]0;xxx\007"-Variante behelfen.
s.o. Die erste Zeile (TTY) setzt die Shell-Variable TTY auf die Nummer des aktuellen Terminals (/dev/ttyX oder /dev/pts/X), und die zweite Zeile baut das ESC]0;xxx\007 in den PS1-Prompt ein. Da ich im "\u@\h[${TTY}]: \w" ja auch den aktuellen Pfad habe ist das praktisch, da so der Pfad im Titel auch aktualisiert wird, wenn ich das Verzeichnis wechsle. Probier doch einfach mal: PS1="\[\033]0;\u@\h: \w\007${PS1}" -dnh -- "Das Neu starten eines Unix Rechners kann sehr schmerzhafte Folgen haben, je nachdem wie schwer das naechste greifbare Buch ist, welches ihnen dann an den Kopf fliegt." -- frei nach einer sehr alten c't [Jens Link]
Morgen On Friday 30 January 2004 20:57, David Haller wrote:
Werde mir bei nächster Gelegenheit mal die Zeit nehmen nachzuvollziehen was obige zwei Zeilen genau machen. Danke für die Ausführliche Antwort, aber ich werde mir vermutlich erstmal mit der einfachereren "echo -ne "\033]0;xxx\007"-Variante behelfen.
s.o. Die erste Zeile (TTY) setzt die Shell-Variable TTY auf die Nummer des aktuellen Terminals (/dev/ttyX oder /dev/pts/X), und die zweite Zeile baut das ESC]0;xxx\007 in den PS1-Prompt ein. Da ich im "\u@\h[${TTY}]: \w" ja auch den aktuellen Pfad habe ist das praktisch, da so der Pfad im Titel auch aktualisiert wird, wenn ich das Verzeichnis wechsle. Probier doch einfach mal:
PS1="\[\033]0;\u@\h: \w\007${PS1}"
Ein Wochenende drüber vergehen lassen hat geholfen. Die Ursache für meine Verwirrung war das ${PS1} am Ende. Das sollte man beim Experimentieren mit diversen Titeln nur beim ersten mal angeben. Sonst setzt man das alte PS1 immer rekursiv in das neue ein und hängt auf diese Weise nur die neuen Titeländerungen vorne an. Diese bleiben dann natürlich wirkungslos, weil sie von der zuerst gemachten Änderung gefolgt werden. Eigentlich naheliegend-- Gehirn war freitags schon auf Wochenendbetrieb geschaltet :-) mfg Axel
participants (6)
-
Axel Heinrici
-
Bernhard Walle
-
Björn Zachej
-
David Haller
-
Konstantin Malakhanov
-
Philipp Gruemmer