シェルスクリプトで萌え萌えに

ここでは、ターミナルを使った効率的な作業の一例として、Ubuntuの「萌ぇ化」を自動化するシェルスクリプトを作ってみましょう。
シェルスクリプトと言っても、何の条件分岐もない、一連の作業をまとめただけの単純なものです。


HOW TO MOEBUNTUのページの「ふぇーず1 デスクトップを萌え萌えに」の「その7」までを自動化しています。

Ubuntu 12.04 LTS対応版


*2013/09/22 MoePinkIconアイコンテーマのリンクを新しいものに差し替えました。/TOY

やっている事は以下の通りです。
  1. 無意味なコマンドをsudoを使って呼び出す。これによって最初の1回だけでしばらくはsudoを使ってもパスワード入力を求められません。
  2. MoePinkIconをダウンロードして圧縮を伸張、/usr/share/iconsにコピーします。
  3. Moe-Pink3テーマをダウンロードして圧縮を伸張、/usr/share/themesにコピーします。
  4. MoeDashIconsをダウンロードして圧縮を伸張、/usr/share/unity/5にコピーします。
  5. 引数として渡した壁紙のファイル名から、フルパス付きのファイル名を作ります。
  6. ツールを用いて、壁紙、テーマ、アイコン、ランチャーの色を変更します。
  7. 設定ファイルを直接書き換えて、Unity-2dのランチャーの色を変更します。
    何となくcom.canonical.Unity2d average-bg-colorから設定を読み出しているように見えるのですが、直接値を書き換えてあげないと反映されないのは、どうしてなのでしょうね…

以下がスクリプトの内容です。

#!/bin/sh
set -e

sudo test 0 -eq 0

# moe Pink icons
wget -O - http://ubuntuone.com/6jaXKxEVz9QwfdnA86NHZB | zcat | ( cd /usr/share/icons ; sudo tar xf - )

# moe pink theme
wget -O - http://ubuntuone.com/1NGaXInPaJ0lcPn6xQ2J5V | zcat | ( cd /usr/share/themes ; sudo tar xf - )

# 萌えDash Icons
wget -O - http://ubuntuone.com/214leW8jHQgBpH3MCrJ2ia | zcat | ( cd /tmp ; tar xf - ; sudo cp -f /tmp/DashIcons/MoeDashIcons/* /usr/share/unity/5 )

# 萌えSettings
DIR="`dirname $1`"
FN="`cd $DIR ; pwd`/`basename $1`"
gsettings set org.gnome.desktop.background picture-uri "file://$FN"
gsettings set org.gnome.desktop.background picture-options 'zoom'
gsettings set org.gnome.desktop.interface gtk-theme 'Moe-Pink3'
gsettings set org.gnome.desktop.interface icon-theme 'MoePinkIcons'
gsettings set org.gnome.desktop.wm.preferences theme 'Moe-Pink3'
gconftool-2 -t string -s /desktop/gnome/interface/gtk_theme Moe-Pink3
gconftool-2 -t string -s /desktop/gnome/interface/icon_theme MoePinkIcons
gconftool-2 -t string -s /apps/metacity/general/theme Moe-Pink3
gconftool-2 -t string -s /apps/compiz-1/plugins/unityshell/screen0/options/background_color "#FF4CF6ff"

sed 's/color: Qt.darker(unity2dConfiguration.averageBgColor, 8.0)/color: "#F366FF"/' < /usr/share/unity-2d/shell/launcher/Launcher.qml > /tmp/Launcher.$$
sudo mv -f /tmp/Launcher.$$ /usr/share/unity-2d/shell/launcher/Launcher.qml

Ubuntu 13.04 / 12.10対応版


*2013/06/30 Moe-Pink4テーマのリンクを新しいものに差し替えました。/TOY
*2013/09/22 MoePinkIconアイコンテーマのリンクを新しいものに差し替えました。/TOY

やっている事は以下の通りです。
  1. 無意味なコマンドをsudoを使って呼び出す。これによって最初の1回だけでしばらくはsudoを使ってもパスワード入力を求められません。
  2. MoePinkIconをダウンロードして圧縮を伸張、/usr/share/iconsにコピーします。
  3. Moe-Pink4テーマをダウンロードして圧縮を伸張、/usr/share/themesにコピーします。
  4. MoeDashIconsをダウンロードして圧縮を伸張、/usr/share/unity/6にコピーします。
  5. 引数として渡した壁紙のファイル名から、フルパス付きのファイル名を作ります。
  6. ツールを用いて、壁紙、テーマ、アイコン、ランチャーの色を変更します。

以下がスクリプトの内容です。

#!/bin/sh
set -e

sudo test 0 -eq 0

# moe Pink icons
wget -O - http://ubuntuone.com/6jaXKxEVz9QwfdnA86NHZB | zcat | ( cd /usr/share/icons ; sudo tar xf - )

# moe pink theme
wget -O - http://ubuntuone.com/3TuXJyU2JacduEVPRTvnhx | zcat | ( cd /usr/share/themes ; sudo tar xf - )

# 萌えDash Icons
wget -O - http://ubuntuone.com/214leW8jHQgBpH3MCrJ2ia | zcat | ( cd /tmp ; tar xf - ; sudo cp -f /tmp/DashIcons/MoeDashIcons/* /usr/share/unity/6 )

# 萌えSettings
DIR="`dirname $1`"
FN="`cd $DIR ; pwd`/`basename $1`"
gsettings set org.gnome.desktop.background picture-uri "file://$FN"
gsettings set org.gnome.desktop.background picture-options 'zoom'
gsettings set org.gnome.desktop.interface gtk-theme 'Moe-Pink4'
gsettings set org.gnome.desktop.interface icon-theme 'MoePinkIcons'
gsettings set org.gnome.desktop.wm.preferences theme 'Moe-Pink4'
gconftool-2 -t string -s /desktop/gnome/interface/gtk_theme Moe-Pink4
gconftool-2 -t string -s /desktop/gnome/interface/icon_theme MoePinkIcons
gconftool-2 -t string -s /apps/metacity/general/theme Moe-Pink4
dconf write /org/compiz/profiles/unity/plugins/unityshell/background-color "'#FF4CF6ff'"

使い方


まずは、geditやnano等のテキストエディターを立ち上げて、上の内容を貼り付けて保存します。
ここでは、moesetup.shとしてセーブした事にします。

次にTerminal(端末)を起動しておまじないをします。

$ chmod +x moesetup.sh

これは、moesetup.shを「実行できるようにする」というおまじないです。

実行前に、壁紙を準備しておきましょう。
やはりホームページや雑誌の記事でお馴染みの、こちらの壁紙がいいですよね。
URLから直接ダウンロードできるサイトであれば、wgetを用いてダウンロードする所まで自動化できるのですが、このサイトは出来ないようですので、予めダウンロードして、スクリプトにファイル名を渡してあげる事にしました。

これで準備が整いました。端末でmoesetup.shを壁紙のファイル名を付けて実行してみましょう。

$ ./moesetup.sh ~/ダウンロード/theAnimeGallery_12631_1600x1200.jpg

いかがでしょうか?
自分の環境で試した所、即時に反映されない項目がありました。
リブートするか、一旦ログアウトして、再度ログインしてみましょう。

憧れのmoebuntuの一丁あがり!です。

端末での操作は、ほぼコピペだけで済むので、GUIで操作を教えるよりも、慣れない人の場合には再現性が高いという特徴があります。

萌え化のハードルが高いとお感じの方でも、こちらの方法だと上手くいくかも知れません。

補足


  • Unityのアイコンを上書きしてしまうのでご注意ください。元に戻したい場合には、HOW TO MOEBUNTUのページを参考にしてください。
  • 稀にリンク切れが発生する場合があります。その場合、HOW TO MOEBUNTUのページを参考にして、適宜スクリプトを修正してお使いください。
  • このスクリプトは、ダウンロードしているテーマ、アイコンをダウンロードするディレクトリの関係で、Ubuntu 12.04 LTS専用です。同じ考え方で12.10, 13.04でも適用できると思いますので、スクリプトをアレンジしてお使いください。
  • この記事は、こちらのブログmoebuntu wiki向けに若干の加筆/修正したものです。
  • 手違いで試行錯誤中のスクリプトを貼ってしまったようなので修正しました。(2013/05/03)
  • かなりインチキくさいですが、13.04対応版のスクリプトを貼りました。(2013/05/05)
  • 色々と試行錯誤をして、上手く動いた時点でのスクリプトなので、実際には不要なスキーマの変更をしているかも知れません。冗長に見えますが、冗長にしないと上手く反映されなかったり、摩訶不思議な現象が起きているのですが、結果オーライと言うことで、ご容赦ください。
  • もっと正しい方法がわかりましたら、加筆/修正をお願いします。
  • Toyさんの熱意で13.04対応版のスクリプトは下手に設定ファイルを書き換えなくても良い方法が見つかりましたので修正しました。また、同じスクリプト12.10の萌ぇ化も出きることがわかりましたので、13.04/12.10対応版としました。(2013/05/13)

  • 最終更新:2013-09-22 17:51:36

このWIKIを編集するにはパスワード入力が必要です

認証パスワード