はい、xdotoolは動作します

はい、xdotoolは動作します

Lubuntu 18.04には、bashシェルで実行される多くのバックグラウンドGUI操作があります。その中には、バックグラウンドで実行されるevinceプロセスがあります。

$ jobs | grep evince
[29]   Running                 evince CurrentDBs.pdf & 

私はそのウィンドウをデスクトップの前面(現在のbashシェルを実行しているlxterminalウィンドウの前面)に移動したかったのですが、そうではありませんfg 29でした。

なぜそんなことですか?シェルのジョブ制御がデスクトップ環境(またはX Window System)でどのウィンドウが前にあるのか、それとも関係がないのですか?

バックグラウンドGUIタスクをデスクトップフロントエンドに移動するには? プロセスが Wine で Windows プログラムを実行している場合でも、xdotool を使用して指定されたプロセス ID のウィンドウを前方にインポートできますか?

ありがとうございます。

答え1

はい、xdotoolは動作します

すべての証拠ウィンドウを前方にインポートする方法は次のとおりです。

xdotool search --onlyvisible --class evince windowactivate %@

Wineプログラムで使用できない理由はありません。もちろん、それらを呼ぶには正しい名前を見つける必要があります。このコマンドがxprop役に立ちます。

答え2

evinceサブシェルのバックグラウンドで実行されます(実行プロセスの後に続くアンパサンドに注意してください)。ただし、GUIアプリケーションなので、ウィンドウを閉じるボタンを押すとサブシェルプロセス全体が終了するため、ウィンドウを表示できるはずです。サブシェルバ​​ックグラウンドプロセスが存在している間にウィンドウが表示されない場合は、evinceおそらくバグがあることを意味します。 2つの可能性があります。

  1. 隠されたウィンドウをどこかで見つけます(2番目のデスクトップまたはまたはを押しAlt+Tabてウィンドウを切り替えますAlt+Shift+Tab)。
  2. プロセスを手動で終了するkillか、サブシェルを呼び出すシェルを閉じてサブシェルにevince送信します。SIGHUP

関連情報