xdotoolはTabの代わりに8を印刷します。

xdotoolはTabの代わりに8を印刷します。

現在、「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 を使用することもできます。

関連情報