xdotool druckt 8 statt Tab

xdotool druckt 8 statt Tab

Ich arbeite derzeit an einem "Autotype"-Skript fürpassieren. Dazu muss ich den Benutzernamen eingeben, die Tabulatortaste drücken und dann das Passwort eingeben.

Zum Testen verwende ich den folgenden Code:

WID=$(xdotool selectwindow)
xdotool windowactivate $WID type --delay 100 "Hello World"
xdotool windowactivate $WID key --clearmodifiers Tab
xdotool windowactivate $WID type --delay 100 "Hello World" 

Dann wähle ich kateals Fenster aus, aber die Ausgabe ist Hello World8Hello Worldstatt Hello World Hello World. Was mache ich falsch?

BEARBEITEN:xte 'key Tab'Als Workaround können Sie das Paket verwenden xautomation. Die ursprüngliche Frage bleibt jedoch bestehen.

Antwort1

xdotoolist auf der Suche nach einem"X Keysym"Zeichenfolge, aber die Dokumentation dazu, wie dies ermittelt wird, ist knapp:

Im Allgemeinen funktioniert jede gültige X-Keysym-Zeichenfolge. Mehrere Tasten werden durch '+' getrennt. Es gibt Aliase für "alt", "ctrl", "shift", "super" und "meta", die alle auf Foo_L abgebildet werden, wie zum BeispielAlt_LUnd Control_L, usw.

Ich habe Keycodes wie 0xff09(den Keycode fürTab) bei der Entwicklung einer Seite auf xterm'sSondertasten. Mit diesem Ansatz konnte ich alle Tasten senden, die in meiner Tastaturkonfiguration definiert waren.

Meine Kommandozeile war anders. Nur der entsprechende Teil eines Testskripts zeigt Folgendes:

KEY=0xff09      # XK_tab

sendkey() {                                                                     
        echo "** $1"                                                            
        xdotool key --window $ID $1 2>/dev/null                                 
}

sendkey "$KEY"

Ihr problematischer Befehl wäre

xdotool windowactivate $ID key --clearmodifiers $1 2>/dev/null

xdotoolDas Handbuch von legt nahe, dass es notwendig sein könnte, eine Option hinzuzufügen --sync, und impliziert, dass die Befehlsverkettung funktionieren würde (so dass windowactivateund keymiteinander verkettet werden), aber diese Kombination funktioniert bei mir auch nicht. Aber die --windowOption von keyfunktioniert:

xdotool key --window $ID --clearmodifiers $1 2>/dev/null

Antwort2

Ich weiß, das ist schon etwas älter, aber vielleicht hilft es jemandem. Sie können beispielsweise auch KP_Tab oder KP_Enter verwenden.

verwandte Informationen