ページ 11

gtkdialog の扱い

Posted: 09/09/13(日) 17:38
by サボり魔
こんにちは、いつでもサボってます。サボり魔です。
Win版のXamppに付いてくるコントロールパネルが羨ましいので試してました。

コード: 全て選択

#! /bin/bash

export MAIN_DIALOG='
<vbox>
    <frame Operate My Selections>

        <hbox>
            <text>
                <label>Apache2 start</label>
            </text>
            <button>
                <label>start</label>
                <action>/opt/lampp/lampp startapache</action>
            </button>
        </hbox>

        <hbox>
            <text>
                <label>Apache2 stop</label>
            </text>
            <button>
                <label>stop</label>
                <action>/opt/lampp/lampp stopapache</action>
            </button>
        </hbox>

        <hbox>
            <text>
                <label>Opera</label>
            </text>
            <button>
                <label>start</label>
                <action>"/root/my-applications/opera/opera.sh"</action>
            </button>
        </hbox>

    </frame>
    <hbox>
        <button cancel></button>
    </hbox>
</vbox>
'

gtkdialog3 --program=MAIN_DIALOG
これで動くんですけど(パスは適宜ね)、最後にオマケで入れたブラウザ起動が問題でして。
ラッパーで起動しやがれとシェルに言われたので、試しに書いた別のファイル(opera.sh)から exec して opera を起動(eval でもいけるね)。
ブラウザを閉じるまでは gtkdialog がアクティブに戻らずに停止したままです。
このソフトに限らず、おそらくは画面が開くアプリケーションはどれもこの状態になるのではないかと。 :(

元からある opera ファイル(本来これをクリックして起動するやつです)の初めのほうに

コード: 全て選択

kill $(ps | grep 'opera.sh' | sed 's/^\s*//' | cut -d ' ' -f 1)
なんぞと入れて Kill しちゃえば戻って来てくれて解決なのですが、それも野暮ったい。

何か gtkdialog の仕組みでフォーカスを戻してきてくれる構文なんてないものでしょうか。
ざざーっと「/usr/share/doc/gtkdialog3/gtkdialog.txt」を見てもイマイチわかりません。
ご存知のかた、教えて頂けませんか? 全然急いでおりませんので。わかった時にでも。

こんなことせずに素直にショートカット作っとけって? 多分それが正しいと思います。 :wink:

Re: gtkdialog の扱い

Posted: 09/09/13(日) 23:09
by シノバー
サボり魔 さんが書きました: ブラウザを閉じるまでは gtkdialog がアクティブに戻らずに停止したままです。
<action>"/root/my-applications/opera/opera.sh" &</action>
では?

Re: gtkdialog の扱い

Posted: 09/09/13(日) 23:29
by サボり魔
シノバーさん、さっそくありがとうございます。
<action>"/root/my-applications/opera/opera.sh &"</action>
でうまくいきました! :D

クォーテーションの位置によってはそもそもダイアログが出なかったり、ややこしいですね。
一発解決。どうもありがとうございます。