現在、「autotype」スクリプトを開発しています。渡す。これを行うには、ユーザー名を入力して「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 を使用することもできます。