Linux Tips

GNOMEのメニューに項目を表示するための仕組み

北浦訓行
2005/3/31

 GNOMEメニューを編集するための基礎知識GNOMEメニューにサブメニューや項目を追加するにはによって、GNOMEのメニューを変更する方法が分かった。

 ところで、/etc/xdg/menus/applications.menuを見ると、サブメニューの指定に以下のような設定が行われている。

  <!-- System Tools-->
  <Menu>
    <Name>System</Name>
    <Directory>System.directory</Directory>
    <Include>
      <And>
        <Category>System</Category>
        <Not><Category>Screensaver</Category></Not>
        <Not><Category>X-Red-Hat-ServerConfig</Category></Not>
        <Not><Category>SystemSetup</Category></Not>
      </And>
    </Include>

 上記の例の場合、<And>〜</And>内の条件がすべて合致するものをサブメニューに表示する。この中に含まれる条件は、

           <Category>System</Category> ←1
        <Not><Category>Screensaver</Category></Not> ←2
        <Not><Category>X-Red-Hat-ServerConfig</Category></Not> ←3
        <Not><Category>SystemSetup</Category></Not> ←4

の4つである。それぞれ、

  1. カテゴリに「System」を含む項目
  2. カテゴリに「Screensaver」を含まない項目
  3. カテゴリに「X-Red-Hat-ServerConfig」を含まない項目
  4. カテゴリに「SystemSetup」を含まない項目

になる。この4条件を満たす項目が、/usr/share/desktop-directories/System.directoryに定義されているサブメニュー([システムツール]メニュー)に表示される。

 また、<Or>〜</Or>で囲むと、その中のいずれか1つ以上を含む場合に項目が表示されるようになる。例えば、下記の例ではカテゴリに「System」または「Screensaver」のいずれかを含む項目が表示される。

      <Or>
        <Category>System</Category>
        <Category>Screensaver</Category>
    </Or>

 項目の表示/非表示を指定する仕組みは、上記以外にもある。それは、それぞれの項目を定義している/usr/share/applications/*.desktopファイルで指定するものだ。具体的には、

OnlyShowIn=

NoDisplay=

などである。例えば、/usr/share/applications/gnome-nautilus.desktopは、「OnlyShowIn=GNOME;」という記述があるため、ウィンドウマネージャがGNOMEの場合にのみ表示される。逆に、「OnlyShowIn=KDE;」となっていて、KDE実行時のみ表示される項目もある。

[Desktop Entry]
Encoding=UTF-8
Name=File Browser
(省略)
OnlyShowIn=GNOME; ←GNOMEのときに表示
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=nautilus
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-OtherBinaries=nautilus-adapter;nautilus-content-loser;nautilus-sidebar-loser;nautilus-text-view;nautilus-throbber;
X-Desktop-File-Install-Version=0.9

 また、/usr/share/applications/system-install-packages.desktopなどのように、「NoDisplay=true」という設定によって非表示になっている項目もある。

[Desktop Entry]
Name=Install Packages
GenericName=Install Packages
Comment=Install new packages on the system
MimeType=application/x-rpm;
Exec=/usr/bin/system-install-packages %F
Terminal=false
Type=Application
Icon=system-config-packages.png
Encoding=UTF-8
NoDisplay=true ←項目を表示しない

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間