====== Xfce メニューのカスタマイズ ======
このページでは、Xfdesktop **4.6以降** および libxfce4menu を使用したメニューをカスタマイズする方法について説明しています。
===== Xfdesktop がインストールするもの =====
Xfdesktop はメニューファイルと、(プログラムの実行、ターミナル、ファイルマネージャなどの) ルートメニューのデスクトップエントリファイルをインストールします。メニューをカスタマイズするには、これらを編集する必要があります。
===== メニューファイルの編集 =====
${XDG_CONFIG_HOME:-~/.config}/menus ディレクトリがなければ作成します:
mkdir ${XDG_CONFIG_HOME:-~/.config}/menus/
インストールされたメニューを、${XDG_CONFIG_HOME:-~/.config}/menus にコピーします:
cp $prefix/etc/xdg/menus/xfce-applications.menu ${XDG_CONFIG_HOME:-~/.config}/menus
===== ルートエントリを隠すには =====
ルートメニューから任意のメニューアイテムを除去したい場合は、当該アイテムのデスクトップエントリファイルをホームフォルダにコピーし、その中の ''NoDisplay'' エントリキーを追加/変更します。認められているデスクトップキーについてのより詳しい情報については [[http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html|ここ]] を参照してください。
Xfdesktop は以下のデスクトップエントリファイルをインストールします:
* ''$prefix/share/applications/xfce4-about-xfce.desktop''
* ''$prefix/share/applications/xfce4-file-manager.desktop''
* ''$prefix/share/applications/xfce4-help.desktop''
* ''$prefix/share/applications/xfce4-logout.desktop''
* ''$prefix/share/applications/xfce4-run-program.desktop''
* ''$prefix/share/applications/xfce4-terminal.desktop''
* ''$prefix/share/applications/xfce4-web-browser.desktop''
表示させたくないデスクトップエントリファイルを以下のようにホームフォルダ配下にコピーします。:
cp $prefix/share/applications/xfce4-web-browser.desktop ${XDG_DATA_HOME:-~/.local/share}/applications
次にデスクトップエントリキー NoDisplay を修正または追加します:
NoDisplay=true
=== NoDisplay と Hidden の違い ===
{{wiki:warning.png |}} デスクトップエントリファイルの仕様を確認していれば、あなたはすでにこれら 2 つのキーの違いに気がついているかもしれません。NoDisplay はメニューからアプリケーションを隠しますが、その mime タイプは、Thunar の内部などでは割り当てられたままになっています。対して Hidden エントリキーは、アプリケーションが存在しないかのように振る舞います。
===== ルートエントリの作成 =====
追加したいメニューエントリごとに標準デスクトップファイルを作成し、''${XDG_DATA_HOME:-~/.local/share}/applications'' 配下に置きます。例えば Eclipse を起動するメニューアイテムの場合は、以下のような内容のファイルを ''eclipse.desktop'' という名前で作成します。
[Desktop Entry]
Version=1.0
Type=Application
Encoding=UTF-8
Exec=eclipse
Icon=eclipse
StartupNotify=false
Categories=X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
Name=Eclipse
Comment=Eclipse Java IDE
これを表示させるために、''${XDG_CONFIG_HOME:-~/.config}/menus/xfce-applications.menu'' を編集します。以下に例を示します:
===== エントリの編集 =====
Xfce バージョン 4.5 の当初から、libxfce4menu はメニュー設定の "マージ" をサポートしていません。これは、ナイスなメニューエディタを作成できないことを意味します。メニューエントリの追加/除去、または編集を行うには、ファイルを手動でコピーしなければなりません。
例えば "gvim" をインストールしたのであれば、そのデスクトップエントリファイル ''/usr/share/applications/gvim.desktop'' があるばずです。そのファイルを ''${XDG_DATA_HOME:-~/.local/share}/applications'' にコピーし、それを修正できます。
新しいメニューを作成する時は、新しいデスクトップエントリファイルを上記ディレクトリ内に作成します。''exo-desktop-item-edit'' コマンドを使うと、そのようなファイルを簡単に作成できます。例えば、''%%exo-desktop-item-edit --create-new ~/.local/share/applications/%%'' というふうに実行します。
===== サブメニューのカスタマイズ =====
新しくサブメニューを作成するには、${XDG_CONFIG_HOME:-~/.config}/menus/xfce-applications.menu 内の、他の Xfce サブメニュー ("Graphics" や "Multimedia" など) と同じレベルに "Menu" 要素を追加します。任意の名前を定義した "Menu" 要素には、他に 2 つの要素を設定する必要があります。一つめは "Directory" 要素で、用意したサブメニューに関する、アイコンその他の情報を定義したデスクトップエントリファイルとの関連付けを行います。二つめは "Category" 要素で、このサブメニューに表示するメニューアイテムの .desktop ファイルと関連付けるためのカテゴリを指定します。カスタムカテゴリの名前は、慣例により、非標準カテゴリのプレフィックスとされている "X-" で始めることが推奨されています。例えば、ファイルマネージャで任意のフォルダを表示するメニューアイテムを登録するサブメニューを作成する場合は以下のようになります:
次に、${XDG_DATA_HOME:-~/.local/share}/desktop-directories/folders.directory を以下のような内容で作成します:
[Desktop Entry]
Version=1.0
Type=Directory
Icon=file-manager
Name=Folders
Comment=Folders viewed in a file manager
ここではサブメニューの表示名およびアイコンなどを指定します。
最後に、メニューアイテムを上で作成したサブメニューで表示するための .desktop ファイルを ${XDG_DATA_HOME:-~/.local/share}/applications フォルダに作成します。サブメニュー配下に表示させるためには、"Categories" に上記で指定したカスタムカテゴリ名を設定します。thunar-home.desktop と名づけ、ホームフォルダを開くメニューアイテムのファイルの例を以下に示します:
[Desktop Entry]
Version=1.0
Type=Application
Exec=/usr/local/bin/thunar /usr/home/yourname
Icon=file-manager
StartupNotify=false
Categories=X-Folders;
OnlyShowIn=XFCE
Name=home
Comment=home displayed in Thunar
必要なファイルをすべて配置し、必要であればメニューを更新 (後述) したら、"Folders" という名前のサブメニューがファイルマネージャのアイコンを使用して Xfce メニューに表示され、サブメニュー配下には、Thunar でホームフォルダを開くメニューが表示されているはずです。この他にも /cdrom や / など任意のフォルダへのショートカットのメニューを追加できます。
===== メニューの再読み込み =====
ファイルモニタリングサポートを使用していない場合は、''%%xfdesktop --reload%%'' と実行するとメニューを更新します。Xfce メニューの更新は ''%%xfce4-panel -r%%'' を実行してください。
もし動作しない場合、代わりに ''%%killall -HUP xfdesktop%%'' を実行してみてください。
がんばって!