
私は現在、「オートタイプ」スクリプトに取り組んでいます。合格そのためには、ユーザー名を入力し、「Tab」キーを押してからパスワードを入力する必要があります。
テストには次のコードを使用しています:
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"
次に、ウィンドウとして を選択しましたkate
が、出力はHello World8Hello World
ではなく ですHello World Hello World
。何が間違っているのでしょうか?
編集:xte 'key Tab'
回避策として、パッケージから 使用できますxautomation
。しかし、元の質問はまだ残っています。
答え1
xdotool
を探しています「Xキーシム」文字列ですが、これをどのように決定するかに関するドキュメントは簡潔です。
一般的に、有効な X Keysym 文字列であればどれでも機能します。複数のキーは '+' で区切られます。"alt"、"ctrl"、"shift"、"super"、"meta" にはエイリアスがあり、これらはすべて Foo_L にマップされます。
Alt_L
そしてControl_L
など
私は次のようなキーコードを使用しました0xff09
(タブ)xtermでページを開発するときに特殊キーこのアプローチにより、キーボード設定で定義されたすべてのキーを送信することができました。
私のコマンドラインは異なっていました。テスト スクリプトの関連部分だけがこれを示しています:
KEY=0xff09 # XK_tab
sendkey() {
echo "** $1"
xdotool key --window $ID $1 2>/dev/null
}
sendkey "$KEY"
問題となるコマンドは
xdotool windowactivate $ID key --clearmodifiers $1 2>/dev/null
xdotool
のマニュアルでは、オプションを追加する必要があるかもしれないと--sync
示唆しており、コマンド チェーンが機能する (つまり、windowactivate
と がkey
連鎖する) ことを示唆していますが、その組み合わせも私の環境では機能しません。ただし、--window
のオプションはkey
機能します。
xdotool key --window $ID --clearmodifiers $1 2>/dev/null
答え2
これは少し古いですが、誰かの役に立つかもしれません。たとえば、KP_Tab または KP_Enter も使用できます。