2014年3月13日木曜日

ArchLinux + XfceでもシステムヴォイスをCV:丹下桜に

最近知りましたが,Linux-HA JapanさんがUbuntuやCinnamon用にサウンドテーマを公開しているようです. リンク

Ubuntu用,とはありますが,/usr/share/sounds/に配置する形のフォルダ構造/ファイル名で,
実はこれFreeDesktop.org準拠なデスクトップ環境ならだいたい使えるはずです.

ということでこれをXfceで使ってみようというのが今回の趣旨です.
CV:丹下桜さんですよ! ゴウランガ!

はじめに
@lindwurm_ さんがブログでUbuntuやCinnamon用に設定方法をブログで紹介されております.
該当する環境の方はそれを参考にすると良いでしょう.
http://blog.lindwurm.biz/2013/07/use-sound-theme.html
http://blog.lindwurm.biz/2013/12/cinnamon-sounds-setting.html

Ubuntuを使用していてもXubuntuユーザーならこっちの記事が参考にできるかもしれません.

だうんろ〜ど
記事冒頭で挙げたリンクからダウンロードしましょう

Xfceで使用するのはUbuntu用と書いてあるほうです.

そして,
$ sudo tar xvf kayo-theme.tar.gz -C /
 としてインストール.次は設定ですね

必要ソフトウェア
と,設定の前に必要なソフトウェアをインストールせねばなりません.
GUIでなにか行動した時,イベントサウンドを発行するのはLibcanberraです
また,このイベントサウンドを実際に再生するのは,SoXです
ちなみにSoXはplayというコマンドをつかってCUIで多種多様な音声ファイルを再生できる上に
CUIなのにレベルメーターが見れます.

インストールは,
$ sudo pacman -S libcanberra libcanberra-pulse libcanberra-gstreamer sox
でOK. PulseAudioを使わずにALSAしかつかってない人はlibcanberra-pulseなくて良し
なんのことかわからない人はとりあえずインストールしておきましょう.
もしかしたらlibcanberra*は既にインストールされているかもしれません.

設定

では設定です.まず,libcanberraを使うために環境変数をセットする必要があります.
export GTK_PATH=/usr/lib/gtk-2.0
export GTK_MODULES=canberra-gtk-module
とか言うのを.xprofileなり.bashrcなり.zshenvなり.zshrcなりに書いとけば良いと思います.
が,
ArchLinuxの場合
/etc/X11/xinit/xinitrc.d/40-libcanberra-gtk-module
で既に定義されているようなので上に挙げた2行はどこにも追加せず何もしなくて良い模様

私の場合AdobeAirを使用する関係上.zshenvでGTK_SESSION_ID環境変数を設定していたところ,
GTK_MODULESが設定されなくなっていたので自分で.zshenvに追加しました
(40-libcanberra-gtk-moduleを読むとわかると思います)

次にデスクトップ環境での設定です.(画像はクリックで拡大)
まずSetting Manager(設定マネージャ)を開きます

そしてAppearance(外観)を開きましょう


外観の中のタブで,Settings(設定)を選びます.


項目の下側にEnable event sounds(イベントサウンドを有効にする)というのがあるので,
このチェックボックスをオンにしましょう.
一度設定マネージャに戻って,


Settings Editor(設定エディタ)を開きます


xsettings > Net > SoundThemeNameの項目を見ると空っぽのはずですので,
そこにサウンドテーマの名前(今回はkayo)を書き込みます.
/usr/share/sounds/にあり,index.themeというファイルを持つフォルダのフォルダ名を
サウンドテーマの名前として使います.
デフォルトではfreedesktopというサウンドテーマが実は用意されています.

最後に

あとはログアウトしてからログインしなおすなり,再起動するなりすると後は
LinuxがCV:丹下桜に!

あとこのサウンドテーマのファイル名とフォルダ構造を参考にお好きなサウンドテーマを作って使ってみるのも良いのではないでしょうか.
おそらくWindows向けサウンドテーマも流用できるでしょう.

Q&A

Q. ログイン&ログアウトの音はないままなんだけど……

A. ログインは適当にスクリプトを用意して,
#!/bin/sh
play /usr/share/sounds/<サウンドテーマの名前>/stereo/desktop-login.ogg
あとはそれをログイン時に読み込むようにSession and Startup(セッションとスタートアップ)から設定してください.      ……ログアウト? がんばってください

Q.  ゴミ箱を空にした時とかの音がちゃんと出てない気がするんだけど

A. がんばって♡
libcanberraのソースコード
(https://gitorious.org/libcanberra/mainline/source/ac5ac9e486aa33f7be0cd9ddd315c03780676795:src/canberra-gtk-module.c#L40)
の40行目から列挙されてるTODOまでのファイル名以外の音声ファイルは確実に読み込んでくれるかどうかちょっと不確定っぽいです.