Hi,
ich habe hier ein Ubuntu System, das hat in jeder bash die Umgebungsvariable WINDOWID, die besagt, in welcher X-Terminalemulation die bash gestartet wurde.
Dann habe ich noch ein Debian Jessie, das hat diese WINDOWID nicht und ich weiß einfach nicht, wo die herkommt und wie ich die einschalten kann.
Wenn jemand bescheid weiß, wie ich an diese Variable komme, dann wäre das ziemlich genial.
Danke im Voraus.
Gruß
weedy.
suche WINDOWID variable
Re: suche WINDOWID variable
Kurzes Suchmachinenbefragen lässt vermuten, dass es vom Terminalemulator abhängt, ob die Variable gesetzt ist oder nicht.
Benutzt Du evtl nen anderes Terminal in Ubuntu als in Debian (oder in ner anderen Version)?
Benutzt Du evtl nen anderes Terminal in Ubuntu als in Debian (oder in ner anderen Version)?
- weedy
- Beiträge: 585
- Registriert: 02.11.2002 21:47:49
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: suche WINDOWID variable
Tatsache, Du hast recht. Unter ubuntu nutze ich das xfce4-terminal und unter debian jessie lxterminal. Ich dachte allen ernstes, weil diese WINDOWID unter xfce4-terminal und gnome-terminal sichtbar ist, dass diese nicht von der Terminalemulation selber kommen, sondern irgendwie von X, was ja auch sinnvoll wäre.eggy hat geschrieben:26.07.2018 21:07:22Kurzes Suchmachinenbefragen lässt vermuten, dass es vom Terminalemulator abhängt, ob die Variable gesetzt ist oder nicht.
Benutzt Du evtl nen anderes Terminal in Ubuntu als in Debian (oder in ner anderen Version)?
Dann stellt sich mir jetzt nur noch die Frage, wie ich dem lxterminal beibringe, eine WINDOWID zu generieren.
Gruß
Re: suche WINDOWID variable
weedy hat geschrieben:26.07.2018 21:18:08Dann stellt sich mir jetzt nur noch die Frage, wie ich dem lxterminal beibringe, eine WINDOWID zu generieren.
Code: Alles auswählen
~$ xwininfo -int -name "lxterminal" | grep "Window id"
xwininfo: Window id: 41943041 "lxterminal"
Re: suche WINDOWID variable
Eine ganz allgemeine Lösung ist imho nicht so einfach, aber abhängig davon was du vor hast, lässt sich vielleicht eine Lösung finden. Wenn das Terminal beispielsweise aktiv ist, kann man die Window ID recht leicht herausfinden, zum Beispiel mit xdotool
das allerdings die ID nicht hexadezimal liefert. Dazu müsstest du das noch konvertieren
Je nachdem was du vorhast könntest du diesen Befehl – in der nicht zwangsweise richtigen Annahme, dass ein neu gestartetes Terminalfenster das aktive Fenster ist – beim Start des Terminalemulators mit der ~/.bashrc ausführen lassen, sinnvollerweise so, dass der Befehl nur ausgeführt wird, wenn es sich auch um ein Terminalfenster handelt und nicht um eine auf einem Text-VT laufende Shell oä
Meist ist in einem Terminalfenster $TERM auf xterm* (oder eventuell rxvt*) gesetzt, dann ließe sich das so machen (die Abfrage hab ich aus der default-bashrc von Debian geklaut)
Code: Alles auswählen
$ xdotool getactivewindow
Code: Alles auswählen
$ WINDOWID=$(printf 0x%x $(xdotool getactivewindow))
Meist ist in einem Terminalfenster $TERM auf xterm* (oder eventuell rxvt*) gesetzt, dann ließe sich das so machen (die Abfrage hab ich aus der default-bashrc von Debian geklaut)
Code: Alles auswählen
case "$TERM" in
xterm*|rxvt*)
WINDOWID=$(printf 0x%x $(xdotool getactivewindow))
;;
esac