GObject Ref. translation (Fixed and Updated).

今となっては、すっかり忘却の彼方におしやられてしまった GObject の型システムについてだけれど、ひさしぶりに読み返してみて、いくつか見つけた誤植や訳文を修正し最新版の gtk-doc ツールでビルドしてみた。
ついでに、DVCS として Subversion による管理から Git による管理に変更した。
See Also GObject リファレンスマニュアル: v2.18.4 版の API リファレンス
See Also Git リポジトリ: GObject リファレンスマニュアルの Git リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

GNOME 3.4 (TAKE 2).

前回の続き。
今使っている gnome-shell-3.4.1 のデスクトップ:
G32-Desktop-20120608.png
ちなみに解像度は 1920×1200 で画面比 16:10。背景はオーソドックスに gnome-backgrounds の中から選んだ Floorboards。アプリのランチャはずっと Docky。特に不満なし。拡張機能でメニュー・スタイルのランチャー (Applicationss Menu) も追加しているけど、Favorits なアプリはこの Docky から起動している。
今のフォントの設定はこんな感じ:
gtweak-fonts-20120608.png
基本的にドキュメントやメールの類は Serif (明朝体)、それ以外の UI やアプリは Sans-Serif (ゴシック体) にしている。特に理由はないけど商用フォントがメイン。
使っているテーマはこんな感じ:
gtweak-theme-20120608.png
GTK+ のウィジェットとウィンドウの装飾にはグレーを基本にしたテーマ。gnome-shell 用のテーマは外観がデフォルトの Adwaita に似ていて、そのままコンパクトにしたレイアウトになっている。意外と軽量:

このテーマを使った gtk3-widget-factory の出力はこんな感じ:
gtk3-widget-factory-20120608.png
ちなみにユーザ規模でテーマの変更は 3.4 のリリースの場合、拡張機能の User Themes をインストールした後に、専用のスキームもインストールしてコンパイルする必要有り:

$ cd $HOME/.local/share/gnome-shell/extensions/
$ cd ./user-theme@gnome-shell-extensions.gcampax.github.com/schemas/
$ ls
org.gnome.shell.extensions.user-theme.gschema.xml
$ sudo install -c -m644 \
./org.gnome.shell.extensions.user-theme.gschema.xml \
/usr/share/glib-2.0/schemas/
$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas

利用している拡張機能の一覧:
gtweak-extensions-20120608.png
その中からいくつかピックアップしてみると、まずアクティビティ・モードに組み込まれた拡張機能の一覧から ON/OFF を切り替えたり、アップデートの通知を確認できる (Extension List):
GnomeShell-ExtensionsList-20120608.png
電卓 (gcalctool) を呼び出して数値計算する (Advanced Calculator):
GnomeShell-AdvancedCalculator-20120608.png
他にも、3.4 になってしばらく更新されていなかったものの今回のリリース向けに最近公開された、右端にポインタを移動してホィールマウスを使ってワークスペースをきりかえる (Desktop Scroller (Original)) とか、アニメーションの速度を調整する (Impatience) には gnome-shell-extensions-pref というツールから:
GnomeShell-Impatience-20120608.png
あと、tracker を使ったデスクトップ検索もいい感じなんだけど、この検索ウィジェットに IME 経由で日本語入力するのがちょっと厄介。あとで調べてみる予定。
最後に、Nokia の携帯から google chat と Empathy とでビデオ・コール (音声もOK) をテストした例:
empathy-videocall-20120607.png
といった感じだけど、やっぱりビギナーにはいろいろ面倒だよな :|

GNOME 3.4.

3.4 の公式リリースから2ヶ月半近くたってしまったものの、なんとか 3.2.2 から 3.4.2 の環境にアップグレードできた。一応 Ubuntu (precise) 向け 3.4 系のパッケージはほぼ揃えたつもり。あとは、オリジナルの日本語メッセージはどうも馴染めないので、パッケージのインストール後に適宜更新しているものの、若干残った未訳の日本語メッセージカタログを片付けること。こちらはおいおい時間がある時に。
そういえば、最近 G+ で Linus が「フォントを小さくできねぇぜ」ってまたまた吠えていたけど、今回のいいがかりはまともというか、まぁまぁ同意できるね。今の GNOME ってフォントを小さくするといった初期設定を変更する方法にたどり着くまでが大変というか、ユーザに優しくないと思うね。GNOME 2 じゃすぐわかる方法で提供されていたし、既に 3.x 系になって2回もマイナーアップグレードを経ているのにこのあたりはいつものように (?) 整理されずに放置されたまま。そういう自分もビギナーにはうまく説明できないんだよね、User Experiences を簡潔には。ずっと使い続けているユーザならば、ある程度得られた Experiences から推測はできると思うけど。とはいえ GNOME Shell Extensions (今見たら大きく Beta と書かれていたが) は良いアイディアだ、とも言ってくれているので GNOME 3.0 を批判していた当時より、少しは使って貰えるかなと :D
で、このリリースの「売り」については有志が翻訳したリリースノートを見てもらえば分かるのだが、一見あんまりうれしい機能がない :| ように思われるかもしれないが、実は GTK+ や設定マネージャまわりなどのフレームワーク層には結構大きな手が入っていたりする。
実際、いつものように依存関係順にパッケージを作成しインストールしていき、GTK+ をバージョン 3.3.16 にアップグレードしたところで一旦 gnome-shell をリロードすると、CSS のパースエラーが大量に発生し SIGSEGV で落ちてしまい再び gnome-shell の環境に戻れなくなってしまった。テーマとかビルドするのはもっと先なので、ここはmetacity と gnome-panel を使った旧バージョンのデスクトップ環境 (fallback モード) で作業を続けることにしたのだが、この先いろいろあって作業が進まず、結局「使える状態の」 gnome-shell 環境に復帰できたのは二ヶ月も先になってしまったのだけれども。
さらに、気づいているユーザがいるのかいないのか、おそらく g-s-d を plain ビルドでインストールした人ならばわかると思うが、mutter や metacity で gconf を参照しなくなり、ついでにいろいろと独自のキー・バインディングを設定できた設定キーがごっそり削除されてしまった。おかげで、前の GNOME 3.2 まで使えていたワークスペースの移動やら Alt-Tab によるウィンドウの切り替えを利用できなくなり、かなり痛い思いをした :$。そんな時に Ubuntu から助け船が。Ubuntu でも GNOME 以外のデスクトップ (compitz など) でキー・バインディングのカスタマイズを利用できないのは痛いようで gconf の設定を継承できるようにするパッチを提供してくれたので、これを取り込んで解決した:
g34-use_gsetting_keybindings-20120605.png
画面が広いデスクトップやウィンドウを sloppy モードでアクティブにするような場合はかなり不便な「アプリケーション・メニュー」は、リリースノートに記載されているアプリの他にも gnome-games (ゲーム集) でも採用されているし、gtk3-demo プログラムからはその実装も参照できる:
g34-Tetravex_with_GtkApplicationClass-20120606.png
Nautilus からのファイル操作を Undo/Redo できるのは地味にうれしいのだけど、その適用がゴミ箱へ移動やファイル名の変更といったところまでサポートしていたら cool だったんだけど。
Evolution-3.4 のいつもの機能に特に大きな変化はないものの、インタフェースが少し整理されている。次は設定ダイアログ:
g34-Evo34-SettingDialog-20120606.png
このバージョンでも2万件のメールも問題なくさばけるし、他のカレンダとも同期できるので特に不満はないけど、他のアプリと連携するコネクタとかは使う機会がないのでよく分からないな。メールの作成は (次期は webkit をつかうことになりそうな) gtkhtml だけれど、これって Emacs キーバインディングで編集できないのかな。実装ではできるようになっているのだけれど使えたためしがないな。HTML モードでもダメだった。
Epiphany (ウェブ) は起動が軽量でパフォーマンスの足を引っぱるような拡張プラグインがないのが良いのだけれど、よく固まるねぇ。そういう場合はアプリケーション・メニューから終了できるのだが、使い方が違うような気がする。
フォントビューアやスクリーンショット、辞書といった gnome-utility は今回のリリースからそれぞれソースコードが分割された。
Yelp (ヘルプ・ビューア) は Mallard を使って視覚効果付きで目を引くのだけれど、コンテンツがあまり充実していない。本当に欲しい情報が出てこない。でも GNOME 2.x の頃よりも圧倒的に表示が高速になった:
g34-yelp_help_viewer-20120606.png
gnome-shell とデスクトップはあまり変化がないように見える。というか、拡張機能とテーマでどれがオリジナルな状態なのか分からなくなってきた :X。今回 gdm-3.4 (ログイン・マネージャ) をインストールして初めて gnome-shell の gdm モードにお目にかかれた:
g34-gnome-shell_gdm_mode-20120606.png
(とりあえず、今日はここまで。残りは、使っている gnome-shell のテーマと拡張機能の紹介など)

GTK+ Ref. translation is begun.

4年前から始めた GLib-2.18/GTK+-2.14 シリーズのリファレンスマニュアルの翻訳、なんとか最後のコンポーネントである GTK までたどりついた。まだまだ先は長いけれど、まずは最初の一歩となる、第一章の GTK+ Overview と第二章の GTK+ Core Reference のはじめまで。
はこれだけで1年くらいかかっていたけれど、さてさて今バージョンはどうなるだろうか。ちなみに、その時のバージョンから新たに追加された主な API としては:

といったところ。それ以外は前の翻訳の誤植・誤訳を見直すだけでそのまま採用していく予定。
GTK+ (GDK) のバックエンドとして MacOS XDirectFB のサポートが追加されている (代わりに Linux フレームバッファは外された)。
ということで、できあがったセクション毎に upload し紹介する予定なので、何か誤訳や誤植などがあれば、その都度コメントなんかにどうぞ。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also SVN リポジトリ: 作業の用の SVN リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

Rhythmbox 2.95.

先週、GTK+ 3 対応で GObject Introspection をサポートし、GNOME 3 互換のバージョンがやっとリリースされたので早速ビルドしてインストールしてみたが、どうも曲情報を表示するヘッダ部の配置 (alignment) が悪いのか、ちゃんと曲情報が表示されていないようだ:
rhythmbox-2.95-rb_header-before-20120121.png
コードにある gtk_misc_set_alignment() なんかを調整してみたがうまいような配置にできなかったので、gtk_misc_set_padding() で強引に余白 (padding) を追加してみたが、まぁ良いんじゃないかな:
rhythmbox-2.95-rb_header-after-20120121.png
はじめは、GTK+ 3 から採用された (既に Qt では採用されている) Height-for-width Geometry Management の影響かと思ったがそうではなかったようだ。

--- rhythmbox-2.95~/widgets/rb-header.c 2012-01-15 10:15:24.000000000 +0900
+++ rhythmbox-2.95/widgets/rb-header.c  2012-01-21 21:51:54.468762245 +0900
@@ -252,6 +252,7 @@
gtk_label_set_selectable (GTK_LABEL (header->priv->song), TRUE);
gtk_label_set_ellipsize (GTK_LABEL (header->priv->song), PANGO_ELLIPSIZE_END);
gtk_misc_set_alignment (GTK_MISC (header->priv->song), 0.0, 0.0);
+       gtk_misc_set_padding (GTK_MISC (header->priv->song), 0.0, 5);
gtk_box_pack_start (GTK_BOX (hbox), header->priv->song, TRUE, TRUE, 0);
gtk_widget_show (header->priv->song);

この程度のバグは次のリリースで Fix されるでしょう:)