Ubuntu Firefox auslesen welche webseite offen ist?

Gast #6385782
Lesenswert?

Hallo
Ich würde gerne mal für mich loggen wie viel zeit ich so auf welchen 
Internetseiten verbringe. Mein System ist ein Ubuntu 18 und ich verwende 
Firefox

Mir würde die Fenster Überschrift vom Firefox ausreichen. Gibt es eine 
Möglichkeit über Console Shellscript Phyton oder sonst was da ran zu 
kommen?
#6385795
Lesenswert?

Udo Balinger schrieb:

> Mir würde die Fenster Überschrift vom Firefox ausreichen. Gibt es eine
> Möglichkeit über Console Shellscript Phyton oder sonst was da ran zu
> kommen?

ganz Quick'n'dirty:
1
xwininfo -tree -root |grep 'Firefox'

gibt
...
   0x8c00003 "Ubuntu Firefox auslesen welche webseite offen ist? - 
Mikrocontroller.net - Mozilla Firefox": ("Navigator" "Firefox") 
1512x1271+0+0  +0+410
....
Gast #6387435
Lesenswert?

Etwas fertiges nehmen ist doch langweilig ;) Mir geht es dabei mehr um 
das Lernen als um das Ergebnis.

Jetzt bin ich auch gleich auf das nächste Problem gestoßen.

Ich habe eine sh geschrieben welche als schleife alle Minute xwininfo 
aufruft etwas filtert und das Ergebnis per mqtt raussendet. Wenn ich das 
local auf dem Rechner starte klappt es wunderbar. Wenn ich das von einem 
anderen Rechner über ssh starte meckert er das er kein Display findet. 
Und wenn ich das im Autostart aufrufe bekomme ich auch keine Daten bzw 
nur leere Pakete Vermutlich findet er auch da das Display nicht.

Woran könnte das liegen und wie könnte man das umgehen?
#6389107
Lesenswert?

ssh kann X11-Verbindungen tunneln. d.H. dein xwininfo würde die 
Fensterliste von dem PC anzeigen, von dem aus du die SSH-Verbindung 
aufgebaut hast. (Wenn dort ein X11-Server liefe)

Und auf einem Rechner können mehrere X11-Server laufen, z.B. von 
verschiedenen Benutzern, die sich natürlich nicht in die Quere kommen 
sollten.

Deshalb wird per "DISPLAY"-Environmentvariable mitgeteilt, welcher 
Server für die aktuelle Benutzersession der richtige ist (was auch kein 
lokal laufender Server sein müsste, X11 wäre auch von alleine ohne SSH 
netzwerkfähig)

Lange Rede, Kurzer Sinn:
1
usage:  xwininfo [-options ...]
2

3
where options include:
4
..
5
    -d[isplay] <host:dpy> X server to contact
6
..

Ruf das xwininfo mit "-d :0" auf (erster X11 Server am lokalen PC)
oder pack ein "DISPLAY=:0" in dein sh-Script.

Script muss für denselben Useraccount (mit selben $HOME) laufen, wie der 
X11-Server. Sonst wird das mit den Zugriffsrechten schwieriger.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren