
私は現在、生涯理解できない非常に単純な問題に直面しています。 xdotoolの--window機能は機能しません。
2つのターミナルウィンドウを開き、1つのwindowIDを取得して実行できる必要があります。
xdotool key --window "WindowID" x
しかし、何も起こりませんでした。
存在しないwindowIDを入力すると、BadWindowIDエラーが発生し、対応するウィンドウを見つけます。
コマンドを入力したのと同じ端末ウィンドウのwindowIDを入力すると、何も起こりません。
簡単な操作を実行しsleep 5; xdotool key x
て別の端末ウィンドウに切り替えることもできます。これにより、新しく選択したターミナルウィンドウでキーストロークが正しく行われますが、それは要点ではありません。
現在私の唯一の(機能的な)解決策は、ウィンドウを切り替えてキーストロークを実行してから再度切り替えることで、--window機能をバイパスすることです。しかし、これは目を開けます。
tmp=$(xdotool getactivewindow); xdotool windowactivate --sync $(xdotool search --name "WINDOWNAME") key x; xdotool windowactivate $tmp
rootでbashスクリプトで実行してみましたが、同じ行でwindowIDを変数として別のスクリプトにインポートしようとしました。私が今持っている唯一の他の考えは、ウィンドウマネージャにいくつかの欠陥があると仮定してディストリビューションを更新することです。
私はMint 20、Xfce 64、x11、xfce4-terminalを実行しています。
答え1
(コメントできる担当者は十分ではありませんが、あなたの質問を支持したかったです。)
私は長年にわたり2台の異なるコンピュータでこれを経験してきました。 (CentOS7およびRocky8)
私はxdotoolの経験が豊富で、さまざまなウィンドウのアクティブ化と検索操作を実行できますが、経験的に--window
入力フィルタは機能しませんでした。
私は多くの目標を持っています、次はいくつかあります:
- ビデオ通話中にミュートを切り替えるいいえこのウィンドウに切り替える
- システムショートカット「バイパス」(例:新しいスライド用のGoogleプレゼンテーション
ctrl+m
ですが、すでに私のシステムのグローバルショートカットです。使用したいxdotool key --window WINDOWID ctrl+m
)
編集する:マニュアルページで以前に述べたSENDEVENT Notesセクションを見つけて(どうしたのかわかりません)、xtermに切り替えずにxtermにキーストロークを送ることができました...したがって、この機能は実際に動作するように聞こえますが、非常に制限的です。入力を送信できるウィンドウ(制御されていませんxdotools
)