開発者、システム管理者、ディストリビューター向けの新規事項

GNOME 3.10 は、GNOME 技術を使って作業する人向けの新機能や機能強化をたくさん導入しています。

Wayland

GNOME 3.10 では、GNOME アプリケーションに加えて GNOME セッションも Wayland を使って実行することができます。このサポートは実験的であり、テスト目的での利用だけを想定しています。Wayland で動作する gnome-shell およびアプリケーションは、不安定でありクラッシュする可能性があります。

Wayland 下で gnome-shell を起動するには、次のコマンドを端末で実行します。

gnome-session --session=gnome-wayland

また、GDK_BACKEND を指定することで、個別のアプリケーションを Wayland で起動することもできます。次のコマンドを実行します (application-name は、アプリケーションの実行ファイル名に置き換えてください)。

GDK_BACKEND=wayland application-name

アプリケーションが Wayland での起動に失敗した場合は、X11 へフォールバックしようとします。

Wayland 上の GNOME の詳細については、GNOME Wayland の Wiki ページを参照してください。

新しい GTK+ ウィジェット

GTK+ 3.10 は、新インターフェースウィジェットのコレクションを導入しました。これらは、柔軟性を強化するだけでなく、アニメーション遷移など追加機能も提供します。また、既存ウィジェットに対する使いやすい代替物を提供するものもあります。新規ウィジェットは、最新の GNOME 3 アプリケーションデザインに則って作成されました。

  • GtkStack: 一度に一つの子を表示するコンテナーです。ページ間の遷移は、スライダーまたはフェードとしてアニメーション化できます。

  • GtkStackSwitcher: スタックに表示するページを制御するために使用されるリンクボタンの集合です。GtkStack とともに使用されることを想定しています。

  • GtkRevealer: 子の不可視状態から可視状態への遷移をアニメーション化するコンテナーです。

  • GtkListBox: 垂直コンテナーです。行の動的なソート、フィルターが可能です。また、ポインターあるいはキーボードを使ったナビゲーションも可能です。GtkListBox は、GtkTreeView の代替物となります。行には、コントールおよび複合レイアウトを含めることができます。

  • GtkHeaderBar: ウィンドウ上部に配置されることを想定した水平コンテナーです。GtkHeaderBars は、ウィンドウのタイトルバーとツールバーの両方の役割を持ちます。HeaderBar 内のコンテンツは、始端、終端、あるいは中央のいずれの位置にも配置できます。

  • GtkSearchBar: 検索コントロールを含めるためのコンテナーです。GtkHeaderBarは、一般的に GtkHeaderBar の下部に配置され、実行時の要求に応じて表示/非表示を切り替えることができます。

コンポジットウィジェットテンプレート

コンポジットウィジェットテンプレートは GTK+ 3.10 の新機能です。この新機能を使用すると、XML によるコンポジットウィジェットの定義ができ、それにより手動でウィジェットを構築する必要がなくなります。GTK+ は既にこの機能を利用して、自身のコンポジットウィジェットを定義しています。例えば、GtkVolumeButtonGtkFileChooserDefault などです。アプリケーション作者は、直接 XML を使って、あるいは Glade インターフェースを使って、自分自身のウィジェットを定義する同じような機能を使用できます。

Tristan Van Berkom は、この新機能に関する詳細な解説をブログに投稿しています。この中には、チュートリアルや、実際に試すことができるサンプルも含まれています。

GTK+ のベースライン揃え

GTK+ 3.10 は、テキストのベースライン揃えを導入しました。この機能により、テキストラベルが、コンテナーとの関連で垂直方向に適切に配置され、テキスト配置の一貫性を確保することができます。

ベースライン揃えは、広範囲なウィジェットで利用できます。これを使用したい開発者は、テキストウィジェットの垂直アライメントに GTK_ALIGNMENT_BASELINE を設定する必要があります (これは、new_from_label() などのヘルパー関数を使えば自動的に行われます)。

GLib

GApplication は、GNOME 3.10 で多くの新機能を追加しました。

  • org.freedesktop.Application インターフェース (2013 年 4 月の freedesktop.org サミットで提示されました) をサポートしました。これは、アプリケーションを起動する標準的な方法を提供します。また、ファイルをアプリケーションを使って開く、名前付きアクションをアクティベートするなども可能にします。詳細については、Freedesktop 仕様を参照してください。

  • .desktop ファイルは、アプリケーションを D-Bus アクティベーション 経由で起動するかどうか指定できます。詳細については、Wiki ページを参照してください。

  • .desktop ファイル内のアクションのサポートが GDesktopAppInfo に追加されました。g_desktop_app_info_list_actions() および g_desktop_app_info_launch_action() を使用します。Freedesktop 仕様に、これに関する詳細が載っています。

  • GApplication では、アプリケーションがそのビジー状態をデスクトップシェルに通知することができるようになりました。これは、例えば時間のかかる処理を行っている、あるいはローディング状態である、などを通知したいときに使用できます。

GLib には、他にも多くの機能強化が 3.10 で導入されました。

  • テストにおいて、TAP 出力を生成できるようになりました。これにより、他のテストハーネスとの統合がより簡単になりました。このモードでテストを実行するには、コマンドラインに --tap を指定します。

  • インストールテストの一部サポートを追加しました。

  • GPropertyAction は、オブジェクトのプロパティを表す新タイプの GAction で、アクティベート時に値の変更を行うことができます。これにより、プロパティを GMenus へ簡単に統合できるようになります。

地理位置情報

GNOME 3.10 の新しい地理位置情報機能により、アプリケーションは、場所に関する情報へのアクセスや、システムの現在位置の特定が可能となります。これを実現するために、二つのコンポーネントが新規に導入されました。

  • geocode-glib: ジオコーディング/逆ジオコーディングのための新規ライブラリです。これを使用すると、検索ワードあるいは地理座標に応じて、場所に関する情報を取得することができます。この機能は、OpenStreetMap の Nominatim サービスに依存しています。

  • GeoClue2: 簡潔さとプライバシー強化を目的とした GeoClue 実装を書き換えたものです。これを使用すると、現在位置を特定することができます。