• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Keyboard drücken simulieren

Hallo zusammen,

ich würde gerne in einem cron-Skript einer Aktiven X-Sitzung (Gnome) Tastatureingaben übergeben, die in einer virtuellen Maschine (aktives Fenster, DOS) bestimmte Befehle ausführen.
Bsp: Drücke mir um 00:00 Uhr ESC, dann 10sec später zweimal Pfeil ab, 5sec später ENTER

Ich sehe generell 2 Möglichkeiten, entweder mittels Programm, oder an das device umleiten.

Ich habe schon xvkbd -text ausprobiert, der bringt mir aber leider, "Cannot open display". Das skript soll als root ausgeführt werden, das aktive Fenster im X läuft unter benutzer "grslm"

echo $DISPLAY ist bei grslm :0.0

Wie bekomme ich das mit xvkbd hin, oder wie lese ich mein keyboard device aus, wie leite ich das dann um...jemand ne Idee?

Vielen Dank und Grüße
 
"xvkbd -text ... " find' ich schonmal gut. Ich glaube, es könnte ansonsten ähnlich wie dieses Problem sein:

http://www.linux-club.de/viewtopic.php?f=28&t=101812

Mit etwas Rumprobieren sollte das schon gehen ...

GRuß
 
Programme sind nicht unbedingt daran gewiesen, solche simulierten X-Events anzunehmen. Damit nicht eine fremde Anwendung, die z.B. über ssh-mit-X-Forwarding gestartet wurde (und somit ja auch Zugriff auf den X-Server hat) nicht einfach Befehle auf der lokalen Maschine ausführen kann, ist das Empfangen von solchen Events bei Xterm z.B. per Default deaktiviert (allowSendEvents=false). Andere mögen u.U. gar keine Option dafür anbieten.
 
juhu, habs, trotzdem vielen Dank für die Beiträge.

Lösung ist:
xte -x :0.0 "key Escape"

kommt im Paket "xautomation" mit

Herzlichen Dank fürs mitdenken

Gruß
bonitos
 
http://linux.die.net/man/1/xte
xte is a program that generates fake input using the XTest extension

http://homepage3.nifty.com/tsato/xvkbd/
-xsendevent
Make xvkbd to use XSendEvent() to simulate keyboard events, as it was in xvkbd version 1.0. xvkbd version 1.1 and later will try to use XTEST extension instead in the default configuration.
Benutzen also im Prinzip beide dieselbe Library, nämlich über

/usr/X11R6/include/X11/extensions/XTest.h

Gruß
 
Oben