Menu Policy: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
 
(не показано 30 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{span|font-size: 180%|}}
{{Policy
|since_branch=6.0
|responsible=Igor Vlasenko (viy)
}}
== Общесистемное меню ==
* В системе может быть несколько вариантов общесистемного меню, выбираемых через альтернативу {{path|/etc/xdg/menus/altlinux-applications.menu}}.
* Каждый вариант общесистемного меню должен быть совместим с меню GNOME по внутренним идентификаторам подменю (содержимому тега <Name>). Это необходимо для совместимости со сторонними приложениями, которые добавляют несколько пунктов, собранных в приватное подменю. Текущие варианты общесистемного меню удовлетворяют этому требованию, поэтому их можно брать за основу.<br>Другими словами, каждый вариант общесистемного меню должен быть совместим с общесистемным shallow меню.


{{DraftPolicy
* По стандартному пути {{path|/etc/xdg/menus/applications.menu}} находится неспецифическое (generic) меню по умолчанию, которым может пользоваться любой WM/DE в отсутствие своего родного меню.
|responsible=...
 
}}
=== Адаптированное общесистемное меню для WM/DE ===
{{викифицировать}}
 
Наличие родных приложений, настроек и т.д. является поводом, чтобы создать для WM/DE адаптированное общесистемное меню. Рекомендуется размещать адаптированное меню по пути {{path|/etc/xdg/menus/<WM/DE name>-applications.menu}}. Чтобы WM/DE нашел свое меню по этому пути, обычно достаточно указать в {{cmd|start<DE>}}
export XDG_MENU_PREFIX="<WM/DE name>-"
Адаптированное общесистемное меню для WM/DE должно предоставлять виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}.
 
WM/DE должен иметь зависимость на виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}.
Это позволяет при необходимости установить для WM/DE вместо имеющегося адаптированного общесистемного меню произвольное другое меню.
 
Если с WM/DE в комплекте идет свое оригинальное меню, предлагаемое разработчиками, то WM/DE должен выносить таковое в отдельный подпакет либо вообще отключать его. Также WM/DE не должен явно требовать свое оригинальное меню. Вместо этого он должен иметь зависимость на виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}.
 
=== Порядок слияния подменю в адаптированном общесистемном меню для WM/DE ===
 
Адаптированное меню {{path|/etc/xdg/menus/<WM/DE name>-applications.menu}} должно осуществлять слияние подменю в следующем порядке:
 
* явно сливается общесистемное меню {{path|/etc/xdg/menus/altlinux-applications.menu}}, выбираемое через альтернативу;
 
* явно сливается общесистемный каталог подменю {{path|/etc/xdg/menus/applications-merged}};
 
* накладываются настройки меню, описанные собственно в адаптированном меню;
 
* явно сливается личный каталог подменю для 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}} и размещаемых следующим образом:
 
* системные настройки, действующие на все WM/DE, должны размещаться в общесистемном каталоге подменю {{path|/etc/xdg/menus/applications-merged}};


== Требования к WM/DE, поддерживающим меню стандарта freedesktop ==
* системные настройки, специфические для конкретного WM/DE, должны размещаться в персональном каталоге подменю для конкретного WM/DE, обычно {{path|/etc/xdg/menus/<WM/DE name>-applications-merged}}. Исключение -- KDE4, где в качестве  персонального каталога подменю используется каталог {{path|/etc/xdg/kde4/menus/applications-merged}}.


* WM/DE должен выносить свое оригинаьное меню в отдельный подпакет, либо вообще отключать его.
* настройки пользователя, действующие на любой WM/DE, должны размещаться в файле {{path|$XDG_CONFIG_HOME/menus/applications-menueditor.menu}}.
* WM/DE не должен явно требовать свое оригинаьное меню. Вместо этого, он должен иметь зависимость на виртуальный пакет {{pkg|<NAME>-freedesktop-menu}}


* настройки пользователя для конкретного WM/DE могут размещаться в файле {{path|$XDG_CONFIG_HOME/menus/<WM/DE name>-applications-menueditor.menu}}.




== Подход к построению меню ==
----
=== Нейтральность ===
.desktop файл позволяет указывать, в меню каких оконных менеджеров их показывать.
Поэтому общесистемное меню должно быть оконно нейтральным, а для специфических примочек надо выделять отдельный набор
.desktop файлов с указанием OnlyShowIn=БлаБла.
Не нужно злоупотреблять OnlyShowIn= и NotShowIn=.
Обычно,использование NotShowIn= не приносит пользы.


См. тж. [http://lists.altlinux.org/pipermail/desktop/2009-March/014947.html]
Системные настройки меню требуют прав root. Они выполняются администратором системы либо идут в комплекте с дистрибутивом (в виде пакетов branding-*, подготовленных релиз-менеджером дистрибутива).


== О конверсии ==
Для выполнения настроек пользователя не требуются ни права 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}}.
{| class="standard"
|-
!Старое меню ALT Linux
!соответствие 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
|KidsGame;Game;Amusement;
|-
|Amusement/Other
|Game;Amusement;
|-
|Applications/Accessibility
|Accessibility;Utility;
|-
|Applications/Archiving
|Utility;Archiving;
|-
|Applications/Archiving/Compression
|Utility;Archiving;Compression;
|-
|Applications/Archiving/Cd burning
|DiscBurning;AudioVideo;
|-
|Applications/Archiving/Backup
|Utility;Archiving;
|-
|Applications/Archiving/Other
|Utility;Archiving;
|-
|Applications/Communications
|
|-
|Applications/Databases
|Database;[ choose Office or Development or AudioVideo ]
|-
|Applications/Development
|Development; [ choose manually ]
|-
|Applications/Development/Interpreters
|Development; [ choose manually ]
|-
|Applications/Development/Code generators
|Development; [ choose manually ]
|-
|Applications/Development/Development environments
|Development;IDE;
|-
|Applications/Development/Tools
|Development; [ choose one of Building Debugger GUIDesigner Profiling RevisionControl Translation ]
|-
|Applications/Editors
|TextEditor;Utility;
|-
|Applications/Emulators
|Emulator; [choose System or Game]
|-
|Applications/File tools
|Filesystem;System;
|-
|Applications/Finances
|Finance;Office;
|-
|Applications/Monitoring
|Monitor;System;
|-
|Applications/Publishing
|Publishing;Office;
|-
|Applications/Sciences
|Science;[ choose subcategory manually]
|-
|Applications/Sciences/Astronomy
|Astronomy;Science;
|-
|Applications/Sciences/Biology
|Science;Biology;
|-
|Applications/Sciences/Chemistry
|Science;Chemistry;
|-
|Applications/Sciences/Computer science
|Science;ComputerScience;
|-
|Applications/Sciences/Geosciences
|Science;Geoscience;
|-
|Applications/Sciences/Mathematics
|Science;Math;
|-
|Applications/Sciences/Physics
|Science;Physics;
|-
|Applications/Sciences/Other
|Science;[ choose subcategory manually]
|-
|Applications/Shells
|
|-
|Applications/Text tools
|TextTools;Utility;
|-
|Configuration/Boot and Init
|Settings;DesktopSettings;X-ALT-Linux-Boot-and-Init;
|-
|Configuration/Hardware
|HardwareSettings;Settings;
|-
|Configuration/Networking
|HardwareSettings;Settings;X-ALT-Linux-NetworkSettings;
|-
|Configuration/Packaging
|PackageManager;Settings;
|-
|Configuration/Printing
|HardwareSettings;Settings;Printing;
|-
|Configuration/Other
|Settings;[ choose subcategory manually]
|-
|Documentation
|Documentation;[ choose main category manually]
|-
|Edutainment/Languages
|Education;Languages;
|-
|Edutainment/Mathematics
|Education;Math;
|-
|Edutainment/Science
|Education;Science;[ choose subcategory manually]
|-
|Edutainment/Tools
|Education;[ choose subcategory manually]
|-
|Edutainment/Other
|Education;[ choose subcategory manually]
|-
|Multimedia/Graphics
|Graphics;[ choose subcategory manually]
|-
|Multimedia/Sound
|AudioVideo;Audio;[ choose subcategory manually]
|-
|Multimedia/Video
|AudioVideo;Video;[ choose subcategory manually]
|-
|Networking/Chat
|Network;Chat;
|-
|Networking/IRC
|Network;IRCClient;
|-
|Networking/Instant messaging
|Network;InstantMessaging;
|-
|Networking/File transfer
|Network;FileTransfer;
|-
|Networking/Mail
|Office;Network;Email;
|-
|Networking/News
|Network;News;
|-
|Networking/Remote access
|Network;RemoteAccess;
|-
|Networking/WWW
|Network;WebBrowser;
|-
|Networking/Other
|Network;[ choose subcategory]
|-
|Office/Accessories
|Office;[ choose subcategory]
|-
|Office/AddressBooks
|ContactManagement;Office;
|-
|Office/Graphs
|Chart;Office;
|-
|Office/PDA
|PDA;Office;
|-
|Office/Presentations
|Presentation;Office;
|-
|Office/Spreadsheets
|Spreadsheet;Office;
|-
|Office/Tasks management
|ProjectManagement;Office;
|-
|Office/Time management
|Clock;Calendar;Office;
|-
|Office/Wordprocessors
|WordProcessor;Office;
|-
|Session
|
|-
|Session/Windowmanagers
|
|-
|Terminals
|
|-
|Amusement
|
|-
|Applications
|
|-
|Configuration
|
|-
|Edutainment
|
|-
|Multimedia
|
|-
|Networking
|
|-
|Office
|
|}


== Ссылки ==
== Ссылки ==
<references />
* [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]
* [ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-policy-current.txt ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-policy-current.txt]
* [ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-policy-current.txt ftp://ftp.altlinux.ru/pub/people/zerg/menu/menu-policy-current.txt]
Строка 281: Строка 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]

Текущая версия от 23: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.

Ссылки