私の知る限り、以下のコード行は開いているnautilusウィンドウをフォーカスする必要があります
xdotool windowactivate `xdotool search --onlyvisible --class nautilus`
しかし、私はエラーが発生しています
xdotool:不明なコマンド:21043361
何が起こっているのかと思うのは、内部の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)
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