【Ubuntu 9.10】起動画面の変更の仕方 (xsplash上級編) [ubuntu]
「【Ubuntu 9.10】起動画面の変更の仕方 (xsplash編)」では、リソースの置き換えだけで物足りない!!
「【Ubuntu 9.10】女の子向けの起動画面 作ってしまった・・・」の動画の下記のxsplashの様にロゴの位置とか変えたい!!
と、言う人向けです。
前提条件がちょっと高いです。。なので上級編。ソースコードからのコンパイルです。
1) 「【Ubuntu 9.10】起動画面の変更の仕方 (xsplash編)」は理解してること
2) Linux上でのコンパイル (automake, autoconf, configure, makeなど)を知っていること
3) C言語でコーディングできること及びGKT+が少し分かっていること
4) 自己責任でできること
よく考えたら、この条件に当てはまる人は自分でソースコード読んじゃうか・・・どっちかというと自分のためのメモですね。
興味のある方は「続きを読む」を押してご覧下さい。(長文です)
------ 対象はxspash-0.8.5 です。
1) 新しい実行ファイルとして作るので、名前を考えて下さい。
ここでは xsplash02 として説明します。ここから先の説明では、該当箇所をすべて青文字で記述してますので自分で決めたファイル名に置き換えて読み直して下さい。ただ、間に"-"(ハイフン)などは入れない方が無難です。Makefile.amの記述が違ってきます。
2) 環境設定&ダウンロード&展開
automake, autoconfを入れておいてください。私が使用したバージョンはautomake 1.11, autoconf 2.64 です。
それと、gtk+ 2.0 とdbus-glib-1が必要ですので、libgtk2.0-devとlibdbus-glib-1-devのパッケージも入れておいてください。(その他に依存してるものがあってエラー吐かれたら・・・探して入れてください)
http://packages.ubuntu.com/karmic-updates/misc/xsplashから適当な所にソースをダウンロード&展開してください。(ubuntuのパッチの方は無くて構いません。)
展開したら後々混乱を避けるため、mv xsplash-0.8.5 xsplash02-0.8.5 とでもして、ディレクトリ名を 実行ファイル名-0.8.5 とか自分のわかりやすいものに変更しておいて下さい。
3) 実行ファイル名変更のための書き換え
まず cd xsplash02-0.8.5 でディレクトリの中に入って、configure.acをエディタで開いてください。
3行目のAC_INITを1)で決めた実行ファイル名に書き直して下さい。5行目も自分に合うように直してください。
AC_INIT([xsplash02],
[0.8.5],
[http://])
110行目もxsplash を xsplash02 と直してください。(あまり意味はありませんが。。)
そしてセーブ。
次に cd src でソースコードのある所にいってエディタでMakefile.amを開いてください。
57行目にxsplash とあるのを xsplash02 と書き直して下さい。59行目がxsplash_SOURCES、66行目がxsplash_LDFLAGS となっているのを、それぞれ xsplash02_SOURCES、 xsplash02_LDFLAGS に直してください。(1行めですが・・・正直私には分からなかったので、両方作ってxsplashの実行ファイルのdiffをとってみましたが、差はありませんでした。)
4) リソースディレクトリの変更
そこにあるxsplash.cをエディタで開いて、"images"で検索してみて下さい。
すると、356行目にバックグラウンドイメージファイルの指定をしているので、
/images/xsplash/bg_2560x1600.jpg を /images/xsplash02/bg_2560x1600.jpg
と修正してください。同様に、398行目のthrobberのファイル指定、415行目のロゴのファイル指定を修正してください。
保存して、cd ../images でイメージが格納されているディレクトリに行ってください。
エディタでMakefile.amを開いて、
imagesdir = $(datadir)/images/xsplash を imagesdir = $(datadir)/images/xsplash02
と修正&セーブしてください。
5) ロゴ及びthrobberの変更
cd ../src でソースディレクトリの所に戻って、またxsplash.cを開いてください。
setup_logo_image関数内の538行目に gtk_fixed_put 関数 があると思います。これによって、この関数の第3引数と第4引数が画面の左上を(0,0)としてロゴの左上の位置を指定していますので、好きなように書き直して下さい。(もちろん画面からはみ出したりしないように。)
同じように、548行目にgtk_fixed_move がありますので、前述のgtk_fixed_putで書いたのと同じ記述を第3引数、第4引数に書いてください。(恐らくgtk_fixed_putと違う物にするとログインウインドウが出る前と後で位置が変わってしまうと思います。試していませんが・・・)
例えばですが、538行目のgtk_fixed_put関数を下記の様に書き換えると、
gtk_fixed_put (GTK_FIXED (priv->fixed),
priv->logo,
get_monitor_width () / 2 - gdk_pixbuf_get_width (priv->logo_pixbuf) / 2,
( get_monitor_height () / 4 ) * 3 - gdk_pixbuf_get_height (priv->logo_pixbuf) / 2);
と横方向は画面中央で、縦方向は全体の3/4の位置にきます。すなわち、この記事の最初に掲載したスナップショット画像の位置です。
次にthrobberですが、setup_throbber_image関数内の575行目にロゴの時と同じ様に gtk_fixed_put 関数があるので、throbberの位置を指定してください。もちろん、594行目の gtk_fixed_move 関数も同様です。
ただ、縦方向は注意して設定してください。必ずthrobber_frames(この変数には50が設定してあります)で割っておいた方が無難だと思います。(元のソースコードはthrobber_frames-1 で割ってさらに2で割っているので、ロゴの下に約throbber1コマの半分のサイズを開けて設定してます。でも、何で49で割ってるんだろう??)
書き換えたらセーブしてください。
6) リソースを入れ替える
cd ../images でイメージが入っているディレクトリに行って、テーマに使うpngとjpgファイルを入れてください。
これは、見ればすぐにリソース入れ替えと同じことは分かると思うので説明を省きます。
7) コンパイル
まず、シェルから
automake
次に、
autoconf
と打ってconfigureファイルを作って下さい。(普通、automakeはオプション付けると思うのですが、既にファイルが揃っているのでオプションいらないです)
この次が、この記事で重要な所で(これさえなければ、記事書かなかったかも)
./configure --with-user=gdm
と入力してMakefileを作って下さい。configureのメッセージの最後が
xsplash02 0.8.5
===============================
Prefix : /usr/local
dbus sysdir : ${prefix}/etc/dbus-1/system.d
Run as user : gdm
となっているはずです。これは他のユーザーではxsplashは動作しません。gdmユーザで動かさないと駄目だと言うことです。
後は makeをしてコンパイル&リンケージして、sudo make install で/usr/local以下に入れます。
8) テスト
sudo /usr/local/bin/xsplash02
と入力すると作成したxsplashが動くはずです。ESCキーを押すと終了します。それか、30秒くらいで自動終了するはずです。 ちなみに /var/log/gdm/xsplash-user.log に実行結果のログを残しますので、エラーの時や、どのthrobberが選ばれたか分かります。(ただgdmディレクトリに入るのはroot権限が無いと駄目です)
後は気が済むまで、 5)~7)を繰り替えして、xsplashを作って下さい。
9) 実際の物と置き換え
実際の起動時に使うために、元のxsplashを退避してシンボリックリンクをはります。
cd /usr/bin
mv xsplash xsplash-orig
ln -s /usr/local/bin/xsplash02 xsplash
としてください。それと、もう1つ、
cd /usr/share/images/xsplash
mv bg_2560x1600.jpg bg_2560x1600.org.jpg
ln -s /usr/local/share/images/xsplash02/bg_2560x1600.jpg .
として元々使われているxsplashの bg_2560x1600.jpgのディレクトリにシンボリックリンクを貼るなどして置き換えて下さい。なぜこんなことが必要かというと、実はこのbg_2560x1600.jpgを参照しているのはxsplashだけではないのです。gdmのバックグランド画像としても使われています。 なので、この処理が必要なのです。
gdmとxsplashの時のバックグランドを変えたかったら・・・説明不要ですよね。
上記は簡単なやり方で、複数のxsplashを利用される方はalternativesを利用するのが良いと思います。(私はこの方法でやってます)
10) 再起動して確認
再起動してxpslashが完成です。ログインウインドウ後の位置が違ったりしたら、 5)に戻ってgtk_fixed_move関数が間違えていると思うので修正して 5)からやり直して下さい。
完成です。お疲れ様。(長文なので誤字脱字があるかもしれませんがお許しを)
でも、ログインウインドウ(gdm)が今までのままですよね~。。
いずれまた((((((^_^;)ニゲヨッ
コメント 0