Menu Policy

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(+DraftPolicy, пофиксена таблица, пометка к викификации)
 
(49 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
{{MovedFromFreesourceInfo|AltLinux/Policy/Menu}}
+
{{span|font-size: 180%|}}
-
{{DraftPolicy
+
{{Policy
-
|responsible=...
+
|since_branch=6.0
 +
|responsible=Igor Vlasenko (viy)
}}
}}
-
{{викифицировать}}
 
-
== Полиси по добавлению приложений в меню ==
+
== Общесистемное меню ==
-
TODO: Это полиси еще не существует. Пишите!
+
* В системе может быть несколько вариантов общесистемного меню, выбираемых через альтернативу {{path|/etc/xdg/menus/altlinux-applications.menu}}.
-
=== Подход к построению меню. ===
+
* Каждый вариант общесистемного меню должен быть совместим с меню GNOME по внутренним идентификаторам подменю (содержимому тега <Name>). Это необходимо для совместимости со сторонними приложениями, которые добавляют несколько пунктов, собранных в приватное подменю. Текущие варианты общесистемного меню удовлетворяют этому требованию, поэтому их можно брать за основу.<br>Другими словами, каждый вариант общесистемного меню должен быть совместим с общесистемным shallow меню.
-
==== 1. Определенность. ====
+
* По стандартному пути {{path|/etc/xdg/menus/applications.menu}} находится неспецифическое (generic) меню по умолчанию, которым может пользоваться любой WM/DE в отсутствие своего родного меню.
-
1.1 Явный список поддерживаемых категорий.
+
-
Как известно, .desktop файл может содержать что угодно и любую чепуху, она будет молча проигнорирована.
+
=== Адаптированное общесистемное меню для WM/DE ===
-
И на глаз не очевидно, что будет, а что не будет проигнорировано, на первый взгляд категория может выглядеть как стандартная, но в списке ее не окажется :(
+
-
В СТУДИЮ нужен явный список поддерживаемых стандартных (например, в Mandriva 2007 никакие стандартные не поддерживаются :))
+
Наличие родных приложений, настроек и т.д. является поводом, чтобы создать для WM/DE адаптированное общесистемное меню. Рекомендуется размещать адаптированное меню по пути {{path|/etc/xdg/menus/<WM/DE name>-applications.menu}}. Чтобы WM/DE нашел свое меню по этому пути, обычно достаточно указать в {{cmd|start<DE>}}
-
и Alt — специфических категорий.
+
export XDG_MENU_PREFIX="<WM/DE name>-"
 +
Адаптированное общесистемное меню для WM/DE должно предоставлять виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}.
-
1.2. Явная структура нового меню <br />полный список всех папок.
+
WM/DE должен иметь зависимость на виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}.
-
Для каждой папки указать канонический набор категорий, указав который, гарантированно получим нужный пункт меню.
+
Это позволяет при необходимости установить для WM/DE вместо имеющегося адаптированного общесистемного меню произвольное другое меню.
-
==== 2. Сбалансированность. ====
+
Если с WM/DE в комплекте идет свое оригинальное меню, предлагаемое разработчиками, то WM/DE должен выносить таковое в отдельный подпакет либо вообще отключать его. Также WM/DE не должен явно требовать свое оригинальное меню. Вместо этого он должен иметь зависимость на виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}.
-
принцип построения меню <br />если в подпапках, то в подпапках.
+
-
Весьма желательно. чтобы папка содержала либо подпапки, либо приложения, но не оба вместе.
+
-
Для этого при необходимости ввести категории
+
-
X-ALTLinux-БлаБлаБла-Other
+
-
как очень мудро было сделано в старом меню.
+
-
==== 3. Преемственность. ====
+
=== Порядок слияния подменю в адаптированном общесистемном меню для WM/DE ===
-
Поддержка папок из старого меню. Для каждой папки из старого меню указать ее образ в новом меню,
+
-
при необходимости создав новую категорию.
+
-
Пример. Configuration-Printing можно указать HardwareSettings;Settings.
+
-
Хотя из соображений преемственности и usability лучше ввести специальную категорию
+
-
X-ALTLinux-Configuration-Printing.
+
-
==== 4. Нейтральность. ====
+
Адаптированное меню {{path|/etc/xdg/menus/<WM/DE name>-applications.menu}} должно осуществлять слияние подменю в следующем порядке:
-
.desktop файл позволяет указывать, в меню каких оконных менеджеров их показывать.
+
* явно сливается общесистемное меню {{path|/etc/xdg/menus/altlinux-applications.menu}}, выбираемое через альтернативу;
-
Поэтому общесистемное меню должно быть оконно нейтральным, а для специфических примочек надо выделять отдельный набор
+
-
.desktop файлов с указанием OnlyShowIn=БлаБла.
+
-
Примером, почему это важно служит текущая сборка KDE.
+
* явно сливается общесистемный каталог подменю {{path|/etc/xdg/menus/applications-merged}};
-
Так, как там — делать нельзя.
+
-
Там во всяких KDE’шных примочках меню стоит NotShowIn=GNOME.
+
-
В результате на пользователей всех других оконных менеджеров (не KDE. и не GNOME) высыпается гора мусора.
+
-
Чего стоит только одна надпись «Запуск терминала KDE в режиме суперпользователя» внутри промежуточного меню «Настройки» в IceWM,
+
-
которая растягивает его на пол-экрана…
+
-
Вспоминается «Ужасное зрелище. Душераздирающее зрелище.» (с) ослик Иа.
+
* накладываются настройки меню, описанные собственно в адаптированном меню;
 +
* явно сливается личный каталог подменю для WM/DE, обычно {{path|/etc/xdg/menus/<WM/DE name>-applications-merged}}. Исключение -- KDE4, где в качестве  персонального каталога подменю используется каталог {{path|/etc/xdg/kde4/menus/applications-merged}};
 +
* явно сливается файл настроек пользователя {{path|applications-menueditor.menu}};
 +
* явно сливается файл настроек пользователя {{path|<WM/DE name>-applications-menueditor.menu}}.
 +
== Настройка и брендинг общесистемного меню в WM/DE ==
-
=== О конверсии ===
+
Осуществляется с помощью специальных меню, содержащих команды редактирования меню в соответствии со стандартом<ref>http://standards.freedesktop.org/menu-spec/menu-spec-latest.html</ref>, имеющих расширение {{path|.menu}} и размещаемых следующим образом:
-
{| border="1"
+
* системные настройки, действующие на все WM/DE, должны размещаться в общесистемном каталоге подменю {{path|/etc/xdg/menus/applications-merged}};
-
|-
+
-
|
+
-
Старое меню ALTLinux
+
-
|
+
-
соответствие freedesktop.org
+
-
|-
+
-
|
+
-
Amusement/Adventure
+
-
|
+
-
AdventureGame;Game
+
-
|-
+
-
|
+
-
Amusement/Arcade
+
-
|
+
-
ArcadeGame;Game
+
-
|-
+
-
|
+
-
Amusement/Boards
+
-
|
+
-
BoardGame;Game
+
-
|-
+
-
|
+
-
Amusement/Cards
+
-
|
+
-
CardGame;Game
+
-
|-
+
-
|
+
-
Amusement/Puzzles
+
-
|
+
-
LogicGame;Game
+
-
|-
+
-
|
+
-
Amusement/Sports
+
-
|
+
-
SportGame;Game
+
-
|-
+
-
|
+
-
Amusement/Strategy
+
-
|
+
-
StrategyGame;Game
+
-
|-
+
-
|
+
-
Amusement/Toys
+
-
|
+
-
|-
+
* системные настройки, специфические для конкретного WM/DE, должны размещаться в персональном каталоге подменю для конкретного WM/DE, обычно {{path|/etc/xdg/menus/<WM/DE name>-applications-merged}}. Исключение -- KDE4, где в качестве  персонального каталога подменю используется каталог {{path|/etc/xdg/kde4/menus/applications-merged}}.
-
|
+
-
Amusement/Other
+
-
|
+
-
|-
+
* настройки пользователя, действующие на любой WM/DE, должны размещаться в файле {{path|$XDG_CONFIG_HOME/menus/applications-menueditor.menu}}.
-
|
+
-
Applications/Accessibility
+
-
|
+
-
|-
+
* настройки пользователя для конкретного WM/DE могут размещаться в файле {{path|$XDG_CONFIG_HOME/menus/<WM/DE name>-applications-menueditor.menu}}.
-
|
+
-
Applications/Archiving
+
-
|
+
-
|-
 
-
|
 
-
Applications/Archiving/Compression
 
-
|
 
-
|-
+
----
-
|
+
-
Applications/Archiving/Cd burning
+
-
|
+
-
|-
+
Системные настройки меню требуют прав root. Они выполняются администратором системы либо идут в комплекте с дистрибутивом (в виде пакетов branding-*, подготовленных релиз-менеджером дистрибутива).
-
|
+
-
Applications/Archiving/Backup
+
-
|
+
-
|-
+
Для выполнения настроек пользователя не требуются ни права root, ни знание синтаксиса файлов {{path|.menu}}.  Достаточно отредактировать меню в редакторе меню {{prg|alacarte}} или {{prg|kmenueditor}} и при необходимости<ref>[http://lists.altlinux.org/pipermail/devel/2011-May/190641.html Например, при $HOME в git и использовании разных DE на разных хостах]</ref> вручную переименовать файл {{path|$XDG_CONFIG_HOME/menus/applications-menueditor.menu}} в файл {{path|$XDG_CONFIG_HOME/menus/<WM/DE name>-applications-menueditor.menu}}.
-
|
+
-
Applications/Archiving/Other
+
-
|
+
-
|-
+
== Ссылки ==
-
|
+
<references />
-
Applications/Communications
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Databases
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Development
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Development/Interpreters
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Development/Code generators
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Development/Development environments
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Development/Tools
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Editors
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Emulators
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/File tools
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Finances
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Monitoring
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Publishing
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Astronomy
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Biology
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Chemistry
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Computer science
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Geosciences
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Mathematics
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Physics
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Sciences/Other
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Shells
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications/Text tools
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Chinese
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration/Boot and Init
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration/Hardware
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration/Networking
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration/Packaging
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration/Printing
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration/Other
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Documentation
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Edutainment/Languages
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Edutainment/Mathematics
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Edutainment/Science
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Edutainment/Tools
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Edutainment/Other
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Multimedia/Graphics
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Multimedia/Sound
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Multimedia/Video
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/Chat
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/IRC
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/Instant messaging
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/File transfer
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/Mail
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/News
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/Remote access
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/WWW
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking/Other
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeAccessories
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeAddressBooks
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeGraphs
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficePDA
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficePresentations
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeSpreadsheets
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeTasks management
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeTime management
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
OfficeWordprocessors
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Session
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Session/Windowmanagers
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Terminals
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Amusement
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Applications
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Configuration
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Edutainment
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Multimedia
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Networking
+
-
|
+
-
 
+
-
|-
+
-
|
+
-
Office
+
-
|
+
-
 
+
-
|}
+
-
 
+
-
=== Ссылки ===
+
* [ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-packaging-howto-current.txt ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-packaging-howto-current.txt]
* [ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-packaging-howto-current.txt ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-packaging-howto-current.txt]
Строка 488: Строка 67:
* [http://mdv.vmlinuz.ca/Development/Howto/XDGMenuSystem http://mdv.vmlinuz.ca/Development/Howto/XDGMenuSystem]
* [http://mdv.vmlinuz.ca/Development/Howto/XDGMenuSystem http://mdv.vmlinuz.ca/Development/Howto/XDGMenuSystem]
* [http://fedora.redhat.com/docs/developers-guide/ch-menus.html http://fedora.redhat.com/docs/developers-guide/ch-menus.html]
* [http://fedora.redhat.com/docs/developers-guide/ch-menus.html http://fedora.redhat.com/docs/developers-guide/ch-menus.html]
 +
* [http://lists.altlinux.org/pipermail/devel/2009-July/173472.html (devel) RFC: XDG menus]

Текущая версия на 20:04, 18 мая 2011

Stamp90cw.png
Действующая политика Sisyphus

Политика действует, начиная со стабильного бранча 6.0 и выше.

Ответственный за проведение политики в жизнь — Igor Vlasenko (viy).


Содержание

Общесистемное меню

  • В системе может быть несколько вариантов общесистемного меню, выбираемых через альтернативу /etc/xdg/menus/altlinux-applications.menu.
  • Каждый вариант общесистемного меню должен быть совместим с меню GNOME по внутренним идентификаторам подменю (содержимому тега <Name>). Это необходимо для совместимости со сторонними приложениями, которые добавляют несколько пунктов, собранных в приватное подменю. Текущие варианты общесистемного меню удовлетворяют этому требованию, поэтому их можно брать за основу.
    Другими словами, каждый вариант общесистемного меню должен быть совместим с общесистемным shallow меню.
  • По стандартному пути /etc/xdg/menus/applications.menu находится неспецифическое (generic) меню по умолчанию, которым может пользоваться любой WM/DE в отсутствие своего родного меню.

Адаптированное общесистемное меню для WM/DE

Наличие родных приложений, настроек и т.д. является поводом, чтобы создать для WM/DE адаптированное общесистемное меню. Рекомендуется размещать адаптированное меню по пути /etc/xdg/menus/<WM/DE name>-applications.menu. Чтобы WM/DE нашел свое меню по этому пути, обычно достаточно указать в start<DE>

export XDG_MENU_PREFIX="<WM/DE name>-"

Адаптированное общесистемное меню для WM/DE должно предоставлять виртуальный пакет <NAME>-freedesktop-menu.

WM/DE должен иметь зависимость на виртуальный пакет <NAME>-freedesktop-menu. Это позволяет при необходимости установить для WM/DE вместо имеющегося адаптированного общесистемного меню произвольное другое меню.

Если с WM/DE в комплекте идет свое оригинальное меню, предлагаемое разработчиками, то WM/DE должен выносить таковое в отдельный подпакет либо вообще отключать его. Также WM/DE не должен явно требовать свое оригинальное меню. Вместо этого он должен иметь зависимость на виртуальный пакет <NAME>-freedesktop-menu.

Порядок слияния подменю в адаптированном общесистемном меню для WM/DE

Адаптированное меню /etc/xdg/menus/<WM/DE name>-applications.menu должно осуществлять слияние подменю в следующем порядке:

  • явно сливается общесистемное меню /etc/xdg/menus/altlinux-applications.menu, выбираемое через альтернативу;
  • явно сливается общесистемный каталог подменю /etc/xdg/menus/applications-merged;
  • накладываются настройки меню, описанные собственно в адаптированном меню;
  • явно сливается личный каталог подменю для WM/DE, обычно /etc/xdg/menus/<WM/DE name>-applications-merged. Исключение -- KDE4, где в качестве персонального каталога подменю используется каталог /etc/xdg/kde4/menus/applications-merged;
  • явно сливается файл настроек пользователя applications-menueditor.menu;
  • явно сливается файл настроек пользователя <WM/DE name>-applications-menueditor.menu.

Настройка и брендинг общесистемного меню в WM/DE

Осуществляется с помощью специальных меню, содержащих команды редактирования меню в соответствии со стандартом[1], имеющих расширение .menu и размещаемых следующим образом:

  • системные настройки, действующие на все WM/DE, должны размещаться в общесистемном каталоге подменю /etc/xdg/menus/applications-merged;
  • системные настройки, специфические для конкретного WM/DE, должны размещаться в персональном каталоге подменю для конкретного WM/DE, обычно /etc/xdg/menus/<WM/DE name>-applications-merged. Исключение -- KDE4, где в качестве персонального каталога подменю используется каталог /etc/xdg/kde4/menus/applications-merged.
  • настройки пользователя, действующие на любой WM/DE, должны размещаться в файле $XDG_CONFIG_HOME/menus/applications-menueditor.menu.
  • настройки пользователя для конкретного WM/DE могут размещаться в файле $XDG_CONFIG_HOME/menus/<WM/DE name>-applications-menueditor.menu.



Системные настройки меню требуют прав root. Они выполняются администратором системы либо идут в комплекте с дистрибутивом (в виде пакетов branding-*, подготовленных релиз-менеджером дистрибутива).

Для выполнения настроек пользователя не требуются ни права root, ни знание синтаксиса файлов .menu. Достаточно отредактировать меню в редакторе меню alacarte или kmenueditor и при необходимости[2] вручную переименовать файл $XDG_CONFIG_HOME/menus/applications-menueditor.menu в файл $XDG_CONFIG_HOME/menus/<WM/DE name>-applications-menueditor.menu.

Ссылки

  1. http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
  2. Например, при $HOME в git и использовании разных DE на разных хостах
 
Личные инструменты