1つのコンテンツカテゴリのみを含むXfceアプリケーションメニューを作成するには?

1つのコンテンツカテゴリのみを含むXfceアプリケーションメニューを作成するには?

.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ローカルディレクトリからファイルをロードします。最後に、メニューアプレットをクリックするとショートカットが表示されます。

Xfceメニューアプレットのプロパティ

Xfceメニューアプレットデモ

ショートカットを探す

~/.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

補足説明

.desktopDebianにはデフォルトでファイルがなく、ディレクトリも存在しません(手動で作成する必要があります)~/.local/share/applications~/.config/menus

Xubuntu 14.04(Xfce 4.10)およびDebian 8.3 Xfce(Xfce 4.10)32ビットシステムでテストおよび実行されました。

引用する

関連情報