하나의 콘텐츠 카테고리만 포함하는 Xfce 응용 프로그램 메뉴를 만드는 방법은 무엇입니까?

하나의 콘텐츠 카테고리만 포함하는 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파일)가 생성되었으며 존재하거나(예: "시스템") 존재하지 않을 수 있는(예: "사용자 정의", "가상") 하나 이상의 범주를 포함합니다.
  • 바로가기가 공유 또는 로컬 디렉토리로 이동되었습니다. 즉, ~/.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

보충 설명

.desktop데비안에는 기본적으로 파일이 없고 디렉터리도 존재하지 않습니다(수동으로 생성해야 함) ~/.local/share/applications.~/.config/menus

Xubuntu 14.04(Xfce 4.10) 및 Debian 8.3 Xfce(Xfce 4.10) 32비트 시스템에서 테스트 및 실행되었습니다.

인용하다

관련 정보