Customize the Xfce menu. Редактирование меню в XFCE
Исходный текст (англ.) - Wiki.xfce
Метод применим для Xfdesktop 4.5 и выше.
При самом первом запуске Xfdesktop генерирует и устанавливает файл меню и файлы типа *.desktop. Эти файлы, вместе с иными файлами типа *.desktop, которые не созданы Xfdesktop, образуют меню.
При редактировании меню мы будем менять файл меню, заданный переменной $XDG_CONFIG_HOME (как правило, нулевой, т.e. обычно ~/.config/menus/Xfce-applications.menu) и копии файлов *.desktop в вашем домашнем каталоге.
Если каталог меню файла существует, когда начинается сессия xfdesktop, изменения в файле меню осуществляется немедленно. Аналогично, если в начале сессии существует ~/.local/share/applications (в домашнем каталоге), то изменения в свои файлы *.desktop вносятся немедленно.
Копирование файла меню необходимо только, если вы хотите изменить "тяжелые" записи (например, наименования разделов меню и подменю). Для этого создается папка ~/.config/menus (если её ещё не было :)
В эту папку копируется файл меню, обычно usr/etc/xdg/menus/xfce-applications.menu или usr/etc/xfce/xdg/menus/xfce-applications.menu или /etc/xdg/menus/xfce-applications.menu - точное расположение зависит от дистрибутива.
Теперь xfdesktop сперва будет просматривать файл меню, расположенный в домашней папке, а лишь потом - исходный файл.
Далее, копируем файлы *.desktop из usr/share/applications/ в ~/.local/share/applications. (После чего не забудьте всем этим файлам изменить права доступа с root на пользователя - иначе в меню практически ничего не останется - замечено на личном опыте).
Чтобы скрыть пункт меню, необходимо добавить в соответствующий файл *.desktop строку
NoDisplay=true
При этом файловые ассоциации приложения остаются исходными. Внесение строки
Hidden=true
эквивалентно удалению файла.
Если Вы желаете удалить пункт меню лишь из корня меню, то в скопированном *.desktop файле следует удалить подстроку категории X-Xfce-Toplevel.
Обычно Xfdesktop прописывает в корне следующие пункты (обычно $prefix = /usr):
$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
Так, для удаления браузера из корня меню, необходимо скопировать его (браузера) файл *.desktop и заменить в нем строку
Categories=X-XFCE;X-Xfce-Toplevel;
на
Categories=X-XFCE;
Добавление пунктов меню
Для каждого пункта необходимо создать свой файл *.desktop. Т.е. для того, чтобы в меню появился пункт запуска 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
Если вы предпочитаете работать в GUI (позволяет выбрать иконку с просмотром вариантов), можно создать файл *.desktop с помощью команды
exo-desktop-item-edit --create-new ~/.local/share/applications
Однако в этом случае пункт меню по умолчанию будет принадлежать к категории "Application", что скорее всего приведет к необходимости последующего редактирования полученного файла.
Категория определяет место, где будет располоден новый пункт меню. Для размещения в корне меню следует включить категорию "X-Xfce-Toplevel". Для размещения в подменю, в перечень категорий следует включить хотя бы одну категорию, определяющую данное подменю. Точную информацию по этому поводу можно получить исследуя файл ~/.config/menus/xfce-applications.menu. Например, подменю Accessories имеет следующее определение :
<Menu>
<Name>Accessories</Name>
<Directory>xfce-accessories.directory</Directory>
<Include>
<Or>
<Category>Accessibility</Category>
<Category>Core</Category>
<Category>Legacy</Category>
<Category>Utility</Category>
</Or>
</Include>
</Menu>
Т.е. любой файл *.desktop, имеющий в строке категорий "Accessibility", "Core", "Legacy" или "Utility" будет виден в подменю "Accessories" (если, конечно, там не будет строки NoDisplay=true).
Если какой-нибудь файл *.desktop не будет содержать категорий, предусмотренных в файле xfce-applications.menu, появится новое субменю, в которое будет входить данный пункт. Это распространяется на файлы *.desktop, расположенные как в папке (обычно $prefix = /usr) $prefix//share/applications/, так и в папке ~/.local/share/applications.
Если Вы не хотите, чтобы у Вас существовало какое-либо субменю, Вам следует скопировать в доманюю папку файлы *.desktop всех приложений, входящих в это субменю и модифицировать их таким образом, чтобы категория нежелательного субменю была заменена на категории иных субменю.
Чтобы создать новое субменю, добавьте новый элемент в файл ~/.config/menus/xfce-applications.menu на том же уровне, что и другие субменю, например “Graphics” или “Multimedia”. Кроме элемента "Name" необходимы 2 дополнительных элемента. Первый - "Directory", который связывает подменю с файлом *.desktop данного подменю и позволяющий, например, задать пиктограмму данного подменю. Второй элемент - "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 /home/$yourname$
Icon=file-manager
StartupNotify=false
Categories=X-Folders;
OnlyShowIn=XFCE
Name=home
Comment=home displayed in Thunar
По завершению, Вы должны получить новое подменю с названием "Folders", имеющее пиктограмму "file-manager". Запуск пункта подменю, показанного выше, должeн привести к отображению домашнего каталога в Thunar. Разумеется, Вы можете добавить гораздо бОльшее количество пунктов, позволяющих Вам переходить в стандартные места, типа /cdrom, /stick, и тому подобное.
Если меню не обновляется автоматически с вашими изменениями, попробуйте ускорить отображение внесенных изменений
xfdesktop --reload
Если не сработает, попробуйте
killall -HUP xfdesktop
Возможны случаи, когда и это не сработает. Однако выход из сессии Xfce и вход обратно сработает всегда.
|