GTK+ 2のAuroraエンジンのインストール/アンインストールスクリプトを作成
(2014/10/3)Auroraエンジンとテーマはディストリのパッケージとしてインストールできる場合がある。また、ここで扱っているテーマのバージョン(1.4)は古い。
Auroraエンジンのページからダウンロードできるファイルを展開すると
- aurora-[バージョン].tar.gz:エンジンのソースツリー
- gtkrc_themes.tar.bz2:テーマファイル群
という2つのファイルがあり、他のGTK+ 2用エンジンのパッケージとは少し入れ方が異なるため、インストール/アンインストール作業を自動化するシェルスクリプトを作成してみた。
後で探してみたところ、RPM/Debパッケージが
www.gnome-look.org/content/show.php/gtk2-engines-aurora+%5BRPMs%2BDebs%5D?content=64607
にあったりするので、単にzenityのサンプル*1的なものになってしまったかもしれない。
実行には
[任意]ファイル名: gtk2-aurora-1.4-install.sh
#! /bin/bash AURORA_VERSION=1.4 GTK_REQUIRED_VERSION=2.10.0 CFLAGS="-O2 -pipe" PREFIX=/usr THEMES="Aurora-Midnight Aurora-looks Aurora" WGET=/usr/bin/wget PKG_CONFIG=/usr/bin/pkg-config SRC_URI="http://gnome-look.org/CONTENT/content-files/56438-Aurora-${AURORA_VERSION}.tar.bz2" WORKDIR=/tmp/aurora-workdir cleanup() { rm ${WORKDIR} -fr } die() { zenity --error --title "エラーにより終了します" --text $1 cleanup exit 1 } completed() { zenity --info --text "$1が完了しました" cleanup exit } install_check() { if [ ! -e ${PKG_CONFIG} ]; then die "pkg-configコマンドが見つかりません" elif [ ! -e ${WGET} ]; then die "wgetコマンドが見つかりません" elif ! ${PKG_CONFIG} --exists "gtk+-2.0 >= ${GTK_REQUIRED_VERSION}"; then die "バージョン${GTK_REQUIRED_VERSION}以上のGTK+とその開発パッケージが必要です\nインストールされているバージョン:$(pkg-config --modversion gtk+-2.0)" fi echo "message: インストール前のチェック完了" >&3 } uninstall_check() { local enginefiles=$(find /usr/lib/gtk-2.0/ -name "libaurora.*") if [ -z "${enginefiles}" ]; then die "エンジンがインストールされていません" elif [ ! -d /usr/share/themes/Aurora/ ]; then die "テーマファイルがインストールされていません" fi } install() { mkdir ${WORKDIR} || die "<i>作業ディレクトリ(${WORKDIR})</i>が<b>作成できません</b>でした" cd ${WORKDIR} # ダウンロード echo "tooltip: ダウンロード" >&3 ${WGET} -P ${WORKDIR} ${SRC_URI} || die "<i>${SRC_URI}</i>の<b>ダウンロードに失敗</b>しました" echo "message: ダウンロード完了" >&3 # 展開 echo "tooltip: 展開" >&3 tar jxf $(basename ${SRC_URI}) || die "<i>$(basename ${SRC_URI})</i>の<b>展開に失敗</b>しました" tar zxf aurora-${AURORA_VERSION}.tar.gz || die "<i>aurora-${AURORA_VERSION}.tar.gz</i>の<b>展開に失敗</b>しました" echo "message: ファイル展開完了" >&3 # ビルド cd aurora-${AURORA_VERSION} export CFLAGS echo "tooltip: エンジンのビルド時の設定(configure)" >&3 ./configure --enable-animation --prefix=${PREFIX} || die "<i>configureスクリプト</i>の<b>実行中にエラーが発生</b>しました" echo "message: エンジンのビルド時の設定完了" >&3 echo "tooltip: エンジンのビルド(make)" >&3 make || die "<b>ビルドに失敗</b>しました" echo "message: エンジンのビルド完了" >&3 # インストール echo "tooltip: インストール" >&3 make install-strip || die "<i>エンジン</i>の<b>インストールに失敗</b>しました" tar jxf ../gtkrc_themes.tar.bz2 -C /usr/share/themes/ || die "<i>テーマファイル</i>の<b>インストールに失敗</b>しました" echo "message: インストール完了" >&3 } uninstall() { local dir for dir in ${THEMES}; do rm /usr/share/themes/${dir}/gtk-2.0/gtkrc -f || die "<i>/usr/share/themes/${dir}/gtk-2.0/gtkrc</i>の<b>削除に失敗</b>しました" rmdir /usr/share/themes/${dir}/gtk-2.0/ || die "<i>/usr/share/themes/${dir}/gtk-2.0/</i>の<b>削除に失敗</b>しました" rmdir /usr/share/themes/${dir}/ || die "<i>/usr/share/themes/${dir}/</i>の<b>削除に失敗</b>しました" done rm /usr/lib/gtk-2.0/*/engines/libaurora.* -f || die "<i>/usr/lib/gtk-2.0/*/engines/libaurora.*</i>の<b>削除に失敗</b>しました" echo "message: アンインストール完了" >&3 } if [ ${UID} -ne 0 ]; then die "管理者権限で実行する必要があります" fi # 進行状況を示すためにシステムトレイを使用 exec 3> >(zenity --notification --text "開始" --listen) ACTION=$(zenity --list --text "操作を選択してください" --title "Aurora GTK+ 2 エンジン" --radiolist --hide-column 2 --column 選択 --column dummy --column 操作 true install "インストール" false uninstall "アンインストール") if [ $? -ne 0 ]; then exit 1; fi if [ ${ACTION} == "install" ]; then install_check install completed "インストール" else uninstall_check uninstall completed "アンインストール" fi