web-dev-qa-db-ja.com

xdotool:不明なコマンド:21043361

私の知る限り、以下のコード行は開いているnautilusウィンドウをフォーカスする必要があります

xdotool windowactivate `xdotool search --onlyvisible --class nautilus`

しかし、私はエラーが発生しています

xdotool:不明なコマンド:21043361

2
Hailwood

何が起こっているのかと思うのは、内部のxdotoolコマンドが複数のウィンドウIDを報告していることです。したがって、外側のコマンドはxdotool windowactivate 12345678 21043361のようなものを認識し、2番目の数字をどうするかを知りません。

どのNautilusウィンドウをアクティブにするかを気にしない場合は、最初のウィンドウを選択できます。

xdotool windowactivate $(xdotool search --onlyvisible --class nautilus | head -n 1)

よろしければ、--titleまたは--maxdepthでさらに選択することをお勧めします。

Nautilusが提供するルートウィンドウを除外するには、次のように機能します。

xdotool windowactivate $(xdotool search --onlyvisible --class nautilus |
                         grep -vxF $(xwininfo -int -size -root |
                                     sed -n 's/.*Window id: *\([0-9]\+\).*/\1/p') |
                         head -n 1)
3
Gilles

xdotoolの作成者はこちら。

あなたが見ているものは、2つのウィンドウIDがある可能性が非常に高いです。どのウィンドウIDが必要なのかを正確に把握することができますが、ほとんどの場合、「コマンドチェーン」および「ウィンドウスタック」機能を使用できます。xdotoolのマンページの「ウィンドウスタック」および「コマンドチェーン」を参照してください。

あなたの質問に対する最も簡単な解決策は、次のようにxdotoolを検索して、windowidをwindowactivateコマンドに直接渡すことです。

xdotool search --onlyvisible --class nautilus windowactivate

上記は検索を行い、結果をウィンドウスタックに保存してから、ウィンドウスタックの最初のウィンドウ(別名 '%1')に適用される引数なしでwindowactivateを呼び出します。検索結果を同じコマンドライン内の他のxdotoolコマンドにパイプする方法と考えてください。

すべてのgoogle chrome windowsのタイトルを取得する別の例は、%1、%2などとは異なり、「スタック上のすべてのウィンドウ」を意味する '%@'ウィンドウスタックを使用します。スタック内の特定のウィンドウです)

% xdotool search --onlyvisible --class chrome getwindowname %@   
asdf - Google Search - Google Chrome
CNN.com - Breaking News, U.S., World, Weather, Entertainment & Video News - Google Chrome
Ask Ubuntu - Google Chrome
Google Chrome

一般に、ウィンドウIDを発行するコマンド(search、selectwindow、getactivewindowなど)は、チェーンコマンドで使用するためにウィンドウスタックに入力します。別の例として、ウィンドウをクリックすると、ウィンドウが強制終了されます(通常はアプリケーションが終了します)。

% xdotool selectwindow windowkill
4
Jordan Sissel