Ich verwende einen Himbeer-Pi in Kombination mit Chrom (Kiosk-Modus), um einige Statistiken anzuzeigen. Der Pi hat keine angeschlossene Tastatur, daher habe ich nach einer Lösung gesucht , um Tastatureingaben vom Terminal an den Chromium (Tab) -Prozess zu senden . Die normale Eingabe funktioniert, aber wie sende ich F5
über diese Lösung etwas wie (einen speziellen Schlüssel: Browseraktualisierung)?
# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0
Antworten:
GUI-Programme lesen nicht von ihrer Standardeingabe, sondern erhalten ihre Eingabe vom X-Server . Es gibt Werkzeuge, um einen Tastendruck in ein Fenster einzufügen. xdotool ist ziemlich verbreitet und praktisch.
Sie müssen die Fenster-ID finden, an die Sie den Tastenanschlag senden möchten. Das können Sie mit xdotool machen.
xdotool search --class Chrome
Gibt die Liste der Fenster-IDs aller Chrome-Fenster zurück. Wenn dies mehr als eins ergibt, müssen Sie das gewünschte auswählen. Sie könnenxdotool search --name
anstelle der Klasse eine Übereinstimmung für den Titel verwenden. Sie können auch die Ausgabe von wmctrl analysieren und die gewünschte Fenster-ID extrahieren.Sobald Sie die richtige Fenster-ID gefunden haben, können Sie
xdotool
einen Tastendruck eingeben. Leider lehnen viele Anwendungen synthetische Ereignisse ab, dh Tastenanschläge und Mausereignisse, die von einer anderen Anwendung gesendet wurden. Dies ist bei aktuellen Chrome-Versionen der Fall. Es ist möglich, einen Tastenanschlag aus einer anderen Anwendung über einen anderen Mechanismus einzugeben, aber dazu muss das Fenster fokussiert sein. All das können Sie mit xdotool tun, aber dadurch flackert der Fokus schnell im Chrome-Fenster und zurück. Das folgende Snippet sendet F5an das erste Chrome-Fenster (in einer etwas willkürlichen Reihenfolge).Oder mit älteren Versionen von xdotool:
Denken Sie daran, dass dies F5an dieses Fenster gesendet wird und das Programm entscheiden muss, was damit geschehen soll. In Chrome wird der aktuelle Tab neu geladen.
quelle
--windowid
Flagge ist jetzt--window
(der Befehl warnt Sie so sehr)--title
Option ist jetzt--name
(der Befehl warnt genau so)xdotool search --class Chrome key F5
Die oben vorgeschlagene Lösung verwendete xdotool wie folgt
Das hat bei mir nicht funktioniert. Nach einigem Experimentieren kam ich zu
Einmal schien das zu funktionieren, ich definierte einige Skripte und aktualisierte meine .lircrc-Datei wie folgt:
http://pcfellow.com/ClementineRemote.html
quelle
Ich hatte einen ähnlichen Anwendungsfall auf einem Raspberry Pi mit Raspbian Wheezy. Ich musste Tabs in Chrome im Kiosk-Modus drehen (leider ist es nicht mehr sinnvoll, eine Erweiterung für das alte Chrome zu installieren). Das Beispiel der akzeptierten Antwort enthält einige Tippfehler oder funktioniert einfach nicht mit meinen Softwareversionen. Für mich funktioniert Folgendes:
quelle
Wenn Sie mit Chromium eine benutzerdefinierte Webseite anzeigen und diese regelmäßig aktualisieren möchten, können Sie ihr das folgende Tag hinzufügen:
um es automatisch alle 5 Sekunden zu aktualisieren (Sie können es kürzer oder länger einstellen, wenn Sie möchten).
quelle
Ich habe in der Vergangenheit die automatische Tastenkombination verwendet, um beispielsweise Tastendrücke zu senden. Diese Funktion ist unter Linux jedoch nicht verfügbar. Eine schnelle Google-Suche zeigt jedoch, dass es IronAHK ( http://www.ironahk.net/ ) gibt, für das es nicht viel gibt Dokumentation noch verfügbar, aber es kann den Trick tun.
quelle