0

解決方法がわからない、一見単純な問題があります。

ループ内でバックグラウンドでプログラムを起動する bash スクリプトがあります。ただし、プログラムを開くたびに、ウィンドウが起動され、それに焦点が当てられます。プロセスを起動し、起動するすべてのウィンドウを最小化または完全に非表示にする方法はありますか?

これが私のコードです:

#!/bin/bash
while true; do
process1 & P=$!; #I need to hide all of the windows in this process
process2;
kill $P;
wait;
sleep 0.1; done

ご協力ありがとうございました。

4

2 に答える 2

1

xdotool を使用し、name_in_titlebar をタイトルバーの名前に置き換えます:D

xdotool search --name name_in_titlebar windowactivate
xdotool key ctrl+super+Up
于 2013-01-23T03:35:05.840 に答える
1

これは Window Manager 次第です。wm ドキュメントでフォーカス スチールを防止する方法を調べてみてください。

より一般的なアプローチとして、2 番目の X サーバーを起動して (startx -- :1その後、それCtrl-Alt-F8に切り替える)、 のインスタンスを実行してXnest、サブウィンドウがフォーカスを盗まない X-server-in-a-window を取得するか、vncserver を実行します。 /nxserver は、Windows がスパムを送信する可能性があり、必要に応じて接続して見ることができます。これらのいずれかをたとえば display に設定すると:1、プロセスのウィンドウを でリダイレクトできますDISPLAY=:1 process1

于 2013-01-22T22:34:17.807 に答える