プロが教える店舗&オフィスのセキュリティ対策術

制作ソフトウエアの中で:

system ( xterm -e csh -c '.../.../Script' )

などのコードを実行すると、任意に作成したシェルスクリプトを、ソフトウエアから起動することができます。
お尋ねしたいのは『スクリプト実行する際に表示されるxtermを任意のワークスペースに限定できないだろうか...』ということです。

私はデスクトップ ソフトウエアにxfce4を使用しています。それ以外のXウインドウベースのデスクトップにも"ワークスペース"は付属しているものと思います。
私の環境では、ソフトウエアを起動したワークスペースに関わりなく、現在表示中のワークスペースにxtermが表示されてしまいます。チラチラしてとても画面が見にくくなってしまうんです。

●デスクトップのプロパティを探しても、関係するような項目が見つかりません。
●XウインドウのDISPLAY変数を調べると:

setenv DISPLAY hostname:displaynumber.screennumber

とのことでしたので、screennumberがワークスペースに相当するのかと思い:

setenv DISPLAY :0.1

などを試してみましたが、上手く行きません。

ソフトウエアからウインドウを新規に表示させる時、表示されるワークスペースの指定方法について、ご存知の方がいらっしゃいましたらご助言いただくよう、お願い致します。

A 回答 (2件)

最初から別ワークスペースで起動ってコマンド単独ではできないような気がします。



手動でやるなら、
xterm -e csh -c './foo' &
でxtermを起動してから、
wmctrl -r csh -t 2
とすれば、xtermを#2のワークスペースに移動できますが、スクリプトでやるとなると、
xtermとwmctrlの間で多少の待ち時間が必要で、その間にsleepコマンドを挟んだりする必要があったりで、あまり現状からの改善にはなりませんんね。

xterm -e csh -c './foo' & ; sleep 1; wmctrl -r csh -t 2

検索で見つかるのはほぼ全て、起動後にwmctrlを使って別ワークスペースに移動という手法のようです。
    • good
    • 0
この回答へのお礼

繰り返しのご回答大変ありがとうございました。
ご指摘に従い、私自身もwmctrlについて調べてみました。
「英語」で検索すると、私同様の要求を持つURLがたくさん出てきました。

ご指摘のとおり「最初から別ワークスペースで起動ってコマンド単独ではできない」ようですね。そこで今後は次のようにすることにしました。

●wmctrlの導入は、とりあえず見送る。
xterm一回の表示に1-2秒程度のものに、「sleep」は大きく速度を低下させてしまう。
依存ソフトがこれ以上増えるのはできれば避けたい...など

●私のパソコンはvncサーバが複数個起動しているので、当面はvncviewer上でソフトウエアを起動させる。

今後の状況次第で、再びwmctrlの導入を見当するかもしれません。
私の全く知らないソフトウエアでしたので大変勉強になりました、御礼申し上げます。

お礼日時:2020/02/27 15:18

wmctrlでできませんか?


Xfce4はそれに準拠していると思います。
    • good
    • 0
この回答へのお礼

ご連絡大変有り難うございます。
私の状況説明が言葉足らずだったかもしれませんので、追加致します。
ソフトウエアにある指令を行うと、前述の:

system ( xterm......)

コードが数千回、繰り返し実行されます。起動されたスクリプトは数百行のログを吐いて1-2秒で完了します。
つまり、表示中のワークスペースに、xtermが繰り返し表示されるため、画面は大変見にくくなってしまいます。

自身でソフトウエアのウインドウ上に、ログを表示するスペースを確保することも考えましたが、それなりにコスト(手間)が掛かることと、表示速度はxterm利用よりも遅くなるとの予測から、なるべくなら現在の方法を維持したいと考えております。

お礼日時:2020/02/25 13:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!