【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

 

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関連記事を紹介します

ホワイトペーパーTechTargetジャパン

Linux Square フォーラム 新着記事

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

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)



- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています