Table of Contents

Модифицирование меню XFCE

Эта страница рассказывает, как внести изменения в меню, используя Xfdesktop версии 4.5 или выше и libxfce4menu. Обратите внимание, что в версии 4.6 нет графического редактора меню. Мы надеемся, что он снова появится в 4.8.

Что устанавливает xfdesktop

Xfdesktop отвечает за файл меню и пункты главного меню (Выполнить, Терминал, Файловый менеджер, …). Чтобы модифицировать ваше меню, вам придётся их изменить.

Редактирование файла меню

Создайте директорию ~/.config/menus (если она не существует):

mkdir ${XDG_CONFIG_HOME:-~/.config}/menus/

Скопируйте установленный файл меню в вашу домашнюю директорию:

cp $prefix/etc/xdg/menus/xfce-applications.menu ${XDG_CONFIG_HOME:-~/.config}/menus

Скрытие пунктов главного меню

Чтобы удалить пункты из главного меню, нужно скопировать определённый файл описания программы , а затем добавить или изменить в нём пункт NoDisplay. Больше информации об общепринятых файлах описания программ можно найти здесь.

Xfdesktop устанавливает следущие описания:

Чтобы скрыть конкретный файл описания программы скопируйте его в свою домашнюю директорию, например:

cp $prefix/share/applications/xfce4-web-browser.desktop ~/.local/share/applications,

а затем добавьте или измените существующий в нём пункт NoDisplay:

NoDisplay=true

Различия между NoDisplay и Hidden

Если вы просмотрели спецификацию файла описания, то, возможно, вы уже заметили разницу между двумя этими пунктами. NoDisplay убирает приложение из меню, но ассоциации типов mime всё ещё доступны для Thunar (например). Установка пункта Hidden приводит к тому же эффекту, что и удаление файла.

Создание пунктов главного меню

Ваши собственные пункты меню должны располагаться в ~/.local/share/applications.

В этой директории вы можете создавать файлы описания для каждого пункта меню, например, для пункта меню, запускающего Eclipse, создайте файл eclipse.desktop в директории ~/.local/share/applications:

[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, к примеру:

  <Menu>
    <Name>Xfce</Name>
 
    <DefaultAppDirs/>
    <DefaultDirectoryDirs/>
 
    <Include>
        <Category>X-Xfce-Toplevel</Category>
    </Include>
 
    <Layout>
        <Filename>xfce4-terminal.desktop</Filename>
        <Separator/>
        <Filename>eclipse.desktop</Filename>
 
    [...]

Редактирование пунктов меню

Начиная с версии 4.5, libxfce4menu не поддерживает “Слияние” (“Merge”) из спецификации меню. Это означает, что создание хорошего редактора меню стало невозможным. Чтобы добавить или удалить пункты меню, вы должны вручную скопировать нужные файлы.

Предположим, что у вас установлен “gvim”, тогда должен существовать файл /usr/share/applications/gvim.desktop. Скопируйте его себе в домашнюю директорию, в ~/.local/share/applications. Теперь вы можете внести в него изменения.

Чтобы создать новый пункт меню, вы можете создать новый файл описания программы в этой же директории. exo-desktop-item-edit упрощает создание таких файлов. Запустите, например, exo-desktop-item-edit --create-new ~/.local/share/applications/.

Создание подменю

Чтобы создать новое подменю, добавьте новый элемент типа “Menu” в файл ~/.config/menus/xfce-applications.menu на том же уровне, что и другие подменю XFCE, вроде “Graphics” или “Multimedia”. В добавок к уже упомянутому элементу “Name”, необходимо ещё два: во-первых, элемент “Directory” полезен для установки соответствия подменю файлу описания программы, который обеспечивает, помимо прочего, правильную иконку, как мы вскоре увидим. Во-вторый, элемент “Category” ставит файл .desktop в соответствие этому подменю. Рекомендуется создавать новые категории, начинающиеся с “X-”, что является общепринятым префиксом для нестандартных категорий. В качестве примера, мы создадим подменю для отображения различных директорий в вашем любимом файловом менеджере. Ваша новая запись должна выглядет так:

  <Menu>
    <Name>Folders</Name>
    <Directory>folders.directory</Directory>
    <Include>
      <Category>X-Folders</Category>
    </Include>
  </Menu>

Затем создайте файл ~/.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 в директории ~/.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”, использующее иконку файлового менеджера. Пункт подменю, показанный выше должен показывать содержимое вашей домашней директории в Thunar. Вы, конечно, можете добавлять новые пункты меню в качестве ссылок на привычные места, вроде /cdrom, /stick или любые другие, которые вам нужны.

Обновление меню

Если у вас нет системы наблюдения за файлами, запустите xfdesktop --reload чтобы обновить меню.

Если это не помогло, можете, так же, попробовать killall -HUP xfdesktop.

Наслаждайтесь!

Что, если это не помогло?