Mumble 1.2.3 と skin

Mumble
http://mumble.sourceforge.net/


CELTコーデックと脆弱性修正、録音機能の追加などのバージョンアップがあったようです。
バージョンアップの詳細情報は以下で。
http://mumble.sourceforge.net/1.2.3


ということで、Linux鯖にいれていたモノも入れなおした。

wget ftp://ftp.jaist.ac.jp/pub/sourceforge/m/project/mu/mumble/Mumble/1.2.3/murmur-static_x86-1.2.3.tar.bz2
tar -xvf murmur-static_x86-1.2.3.tar.bz2
cd murmur-static_x86-1.2.3


スーパユーザのパスワード設定

murmur.x86 -supw PASSWORD


ログイン時のユーザ名に、"SuperUser"を使うと、スーパユーザとして入れる。
このときに、-supwで設定したPASSWORDが必要になる。
正直、チャンネルを作る以外よくわからないry


また、クライアントは入れなおしてもサーバリストや設定ファイルはユーザ固有のディレクトリに格納されているので、
1.2.1もしくは1.2.2で使っていた設定のまま移行できる。


以下、Mumbleスキンのおまけ。


よくあるスタイルシート(CSS)のように設定ができるのですが、
本当に細かく設定をする場合、ウィジェットのクラス名やID名などを知らないとならないので、大変です。
これを知るには本体のソースコードを落としてきてUI情報を調べる必要があります。


今回は大雑把にメインウィンドウの背景にお気に入りの画像を設定することにします。
Mumbleを標準でインストールしたディレクトリに"skins"というディレクトリを生成したとします。
スキンデータを格納するための好きなディレクトリをskinsへ生成します。ここでは僕は"Nimono"というスキン名にしました。
次に、"Nimono.qss"を生成します。中身は空のファイルでいいです。
拡張子にqssと付いていればなんでもいいですが、スキン名にあわせて設定するとgood.
qssはQt Style Sheetの略です。


次に、必要になる画像を適当に用意します。
今回、background.pngと、ui.jpgの2枚を使います。
使う画像は、スキンデータを格納するディレクトリ(.qssを生成した場所)にでも入れてください。
規模が大きくなりそうなら、さらにディレクトリを生成してその中に入れていきます。


レイアウトとしては、左にログ、右にチャンネルリストを表示させ、
ログの背景にはui.jpgを連続で配置し、
チャンネルリストには右下に画像を1枚だけ表示指せようと思います。


qssを編集していきます。Nimono.qssを開き、こんな感じに書きます。

QTextBrowser#qteLog{
	background-image: url(skin:ui.jpg);
	background-position: top center;
	background-repeat: repeat-y;
	background-attachment: scroll;
}

UserView#qtvUsers{
	background-color: #FFFFFF;
	selection-color: #0000FF;
	color: #000000;
	background-image: url(skin:background.png);
	background-position: bottom right;
	background-repeat: none;
	selection-background-color: transparent;
}

説明していきます。


まず、QTextBrowser#qteLogブロックについて説明します。
QTextBrowser#qteLogとは、Widgetのクラスである"QTextBrowser"を意味し、さらにそのIDとして"qteLog"を持っているものを指します。
クラスは複数存在しうるのですが、IDは必ず固有であると決まっています。
これにより、任意のWidgetを示す事が出来ます。
QTextBrowser#qteLogはログウィンドウを指しています。
次にその中で設定している意味を述べます。

background-image ... 背景画像を指定
background-position ... 画像を置く位置を指定 (例: top center = 上部の中央)
background-repeat ... 繰り返し方向。noneで無効。 repeat-yは縦方向, repeat-xは横方向、repeat-xyは両方向;
background-attachment ... 繰り返し時の挙動。fixedはスクロールしても変化しない。scrollはスクロールに対応して変化する。

次にUserView#qtvUsersブロックです。
"UserView#qtvUsers"は、チャンネルリストを指します。
上にない設定があるので、その説明だけします。

color ... 通常の文字の色を#16進数で指定
background-color ... 背景色を#16進数で指定;
selection-color ... 選択部分の文字色を#16進数で指定
selection-background-color ... 選択部分の背景色を#16進数で指定。transparentで透明化

なぜ選択部分の色を変化させてたり、背景色を透明化にしているかというと、
選択時はデフォルトで、白文字で青色の背景色で塗りつぶされます。
しかし、背景に画像を置いているのに、その選択時の背景色で塗りつぶされるのは見た目がよくないので、僕の都合がいい感じに色をあわせています。


背景画像は、ある程度メジャーな形式(bmp,jpg,png,gif)には対応していますが、アニメーションには対応していません。
また、透過色が使えます。pngのアルファチャンネルも使えます。
なので、背景色に依存しにくい自然な画像を表示することもできます

出来上がりがこちら


実際はもっと細かくスキンを適用できます。スクロールバーや、メニューなどなど。
mumble skinで調べるとクールなスキンが手に入るので是非どうぞ。