.desktop
サブメニューは含まず、そのカテゴリ内のすべてのファイルを含むアプリケーションランチャーのみを含むアプリケーションメニューをXfceに作成したいと思いますvirtualization
。私が何を言っているのかわからない場合は、下のスクリーンショットをご覧ください。
このスクリーンショットには仮想化サブメニューがなく、代わりに「Arch Linux」、「CentOS 7-1511」、「Debian 8.2」、など。これらの仮想マシンの他のすべてのファイルは、.desktop
仮想化アプリケーションメニューに直接配置されます。以前にカスタムファイルを作成してみ.menu
ました。
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Name>Virtualization</Name>
<Directory>xfce-virtualization.directory</Directory>
<!-- Read standard .directory and .desktop file locations -->
<DefaultAppDirs/>
<DefaultDirectoryDirs/>
<!-- Read in overrides and child menus from applications-merged/ -->
<DefaultMergeDirs/>
<!-- Virtualization Software-->
<Include>
<And>
<Category>Virtualization</Category>
</And>
</Include>
<Layout>
<Merge type="menus"/>
</Layout>
</Menu>
しかし、それは私に空の仮想化されたアプリケーションメニューを提供します。
答え1
アプリケーションのショートカットを見つけるには、ファイルが現在のユーザーのデフォルトディレクトリまたはすべてのユーザーのデフォルトディレクトリのいずれか.desktop
に存在する必要があります。~/.local/share/applications
/usr/share/applications
あなたのケースで何が間違っているのかわからない場合は、以下に示すXubuntu 14.04(Xfce 4.10)でテストした作業例を見てください。
設定例
次の設定では、以下を想定しています。
- ショートカット(
.desktop
ファイル)が作成され、存在するか(「システム」など)、存在しない可能性がある(たとえば「カスタム」、「仮想」)、1つ以上のカテゴリが含まれています。 - ショートカットが共有ディレクトリまたはローカルディレクトリに移動されました。つまり、
~/.local/share/applications
; .menu
定義された特定のカテゴリ(「仮想」など)のショートカットを含むようにメニュー(ファイル)が作成されました。- メニューは
~/.config/menus
目次などの適切な場所に配置されます。
ファイル.menu
には次の内容が含まれています。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Menu
PUBLIC '-//freedesktop//DTD Menu 1.0//EN'
'http://standards.freedesktop.org/menu-spec/menu-1.0.dtd'>
<Menu>
<Name>Parent</Name>
<!--This defines where to find .desktop files-->
<DefaultAppDirs />
<!--This affects what entries will appear under "Parent"-->
<Include>
<Category>Virtual</Category>
<Category>X-Xfce-Toplevel</Category>
</Include>
<!--This includes what entries will appear under "Child" -->
<Menu>
<Name>Child</Name>
<Include>
<Filename>exo-terminal-emulator.desktop</Filename>
</Include>
</Menu>
<!--This affects how will the entries appear under "Parent"-->
<Layout>
<Menuname>Child</Menuname>
<Filename>xfce4-about.desktop</Filename>
<Filename>exo-file-manager.desktop</Filename>
<Filename>exo-terminal-emulator.desktop</Filename>
<Filename>vm-test.desktop</Filename>
</Layout>
</Menu>
vm-test.desktop
この例では、親メニューの下に表示されるカスタムショートカットを作成しました。ディレクトリには他の.desktop
ファイルがすでにあります。私はこれが双方向で動作することを示すために意図的にこれを含めました。~/.local/share/applications
/usr/share/applications
スクリーンショットの例
Xfceパネルに「アプリケーションメニュー」アプレットを追加し、「カスタムメニューファイルを使用」を選択して、共有ディレクトリまたは.menu
ローカルディレクトリからファイルをロードします。最後に、メニューアプレットをクリックするとショートカットが表示されます。
ショートカットを探す
~/.local/share/applications
ディレクトリに追加されたショートカットは、ひげメニューまたはアプリケーションメニューアプレット(デフォルトファイルを使用)でも自動的に見つけることができます.menu
。
.desktop
カテゴリを指定しないか、カテゴリを指定しないファイルは、[その他]カテゴリの下に表示されます。カテゴリが複数ある場合は、既存のカテゴリ(「システム」など)にのみ表示され、「その他」には表示されません。
.desktop
これを理解するには、上記の例で使用したファイルの内容を参照してください。
[Desktop Entry]
Version=1.0
Type=Application
Name=VirtualBox VM test
Comment=Run "test" VM in VirtualBox
Exec=virtualbox --startvm "test"
Icon=virtualbox
Terminal=false
StartupNotify=false
Categories=Custom;System;Virtual;
Name[en_US]=VirtualBox VM test
GenericName=VM test
したがって、カスタムショートカットは、指定されたカテゴリに応じて、「システム」カテゴリの下のアプリケーションメニューに表示されます。また、「ダミー」カテゴリを指定するため、カスタムファイルには「ダミー」カテゴリを含むすべてのファイルを.menu
簡単に含めることができます。.desktop
補足説明
.desktop
Debianにはデフォルトでファイルがなく、ディレクトリも存在しません(手動で作成する必要があります)~/.local/share/applications
。~/.config/menus
Xubuntu 14.04(Xfce 4.10)およびDebian 8.3 Xfce(Xfce 4.10)32ビットシステムでテストおよび実行されました。
引用する
- デスクトップメニュー仕様1.0Freedesktop.orgから。
- 方法: メニューのカスタマイズXfce Wikiから。