GTK-Serverを使ってシェルからGUI
Ubuntu Linux 11.10 でBashからGTKを叩く方法。
環境設定
gtk-serverはパッケージからインストールできないので、ソースから入れる。
$ sudo apt-get install libffi-dev $ wget http://downloads.sourceforge.net/gtk-server/gtk-server-2.3.1-sr.tar.gz $ tar xvzf gtk-server-2.3.1-sr.tar.gz $ cd gtk-server-2.3.1-sr $ ./configure --prefix=/usr/local $ make $ sudo make install
GladeでGUIを編集
GTK-Serverは現時点ではGtkBuilderをサポートしていない。
libgradeのファイルを使う必要がある。
$ sudo apt-get install glade-gtk2 $ glade-gtk2 (GtkBuilderではなく、LibGladeでセーブすること。)
スクリプトを書く
GTK+2に従ってスクリプトを書く。
シグナルを接続するには、gtk_server_connectを使う。
#!/bin/bash -x PIPE=/tmp/gtksv gtk() { echo $1 > $PIPE read RESULT < $PIPE } gtk-server -fifo=$PIPE -detach gtk "gtk_init NULL NULL" gtk "glade_init" gtk "glade_xml_new 'hoge.glade' NULL NULL" REPO=$RESULT gtk "glade_xml_get_widget $REPO 'window1'" WIN=$RESULT gtk "gtk_server_connect $WIN delete-event delwin" gtk "gtk_widget_show_all $WIN" while true; do gtk "gtk_server_callback WAIT" EVENT=$RESULT if [ $EVENT = "delwin" ]; then gtk "gtk_server_exit" exit 0 fi done gtk "gtk_server_exit" exit 0