aboutsummaryrefslogtreecommitdiffstats
path: root/menu
diff options
context:
space:
mode:
Diffstat (limited to 'menu')
-rw-r--r--menu/applications.menu.in1016
-rw-r--r--menu/desktop-directories/mandriva-accessibility.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-development-databases.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-development-developmentenvironments.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-development-tools.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-development-webdevelopment.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-development.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-documentation.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-economy.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-geography.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-history.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-languages.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-literature.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-other.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-sciences.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education-sports.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-education.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-emulators.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-adventure.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-arcade.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-boards.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-cards.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-other.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-puzzles.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-sports.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-strategy.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games-toys.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-games.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-graphics-more.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-graphics.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-hidden.directory.in7
-rw-r--r--menu/desktop-directories/mandriva-internet-more.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-internet.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-moreapplications.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-networking.directory.in4
-rw-r--r--menu/desktop-directories/mandriva-office-more.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-office.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-other.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-astronomy.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-biology.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-chemistry.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-computerscience.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-datavisualization.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-electricity.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-geosciences.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-mathematics.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-other.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-physics.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences-robotics.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-sciences.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-soundvideo-more.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-soundvideo.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in6
-rw-r--r--menu/desktop-directories/mandriva-system-configuration-gnome.directory.in6
-rw-r--r--menu/desktop-directories/mandriva-system-configuration-kde.directory.in7
-rw-r--r--menu/desktop-directories/mandriva-systemtools.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-tools-more.directory.in5
-rw-r--r--menu/desktop-directories/mandriva-tools.directory.in5
-rw-r--r--menu/desktop-directories/mandrivalinux.directory.in5
-rw-r--r--menu/icons/accessibility_section.pngbin0 -> 2380 bytes
-rw-r--r--menu/icons/addressbook_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/adventure_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/amusement_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/applications_section.pngbin0 -> 1926 bytes
-rw-r--r--menu/icons/arcade_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/archiving_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/artificial_intelligence_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/astronomy_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/backup_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/biology_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/boards_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/boot_init_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/cards_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/cd_burning_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/chat_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/chemistry_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/chinese_section.pngbin0 -> 3150 bytes
-rw-r--r--menu/icons/code_generator_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/communications_fax_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/communications_other_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/communications_phone_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/communications_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/compression_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/computer_science_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/configuration_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/data_visualization_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/databases_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/development_environment_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/development_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/development_tools_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/documentation_section.pngbin0 -> 5796 bytes
-rw-r--r--menu/icons/editors_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/education_economy_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_geography_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_history_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_languages_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_literature_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_mathematics.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_other_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_sciences.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_sport_section.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/education_tool.pngbin0 -> 1780 bytes
-rw-r--r--menu/icons/electricity_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/emulators_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/file_tools_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/file_transfer_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/finances_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/geosciences_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/gnome_section.pngbin0 -> 1430 bytes
-rw-r--r--menu/icons/graphics_section.pngbin0 -> 2077 bytes
-rw-r--r--menu/icons/graphs_section.pngbin0 -> 2077 bytes
-rw-r--r--menu/icons/hardware_configuration_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/hardware_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/hicolor/128x128/apps/register-mga.pngbin0 -> 4496 bytes
-rw-r--r--menu/icons/hicolor/16x16/apps/register-mga.pngbin0 -> 1210 bytes
-rw-r--r--menu/icons/hicolor/22x22/apps/register-mga.pngbin0 -> 1256 bytes
-rw-r--r--menu/icons/hicolor/32x32/apps/register-mga.pngbin0 -> 1788 bytes
-rw-r--r--menu/icons/hicolor/48x48/apps/register-mga.pngbin0 -> 2549 bytes
-rw-r--r--menu/icons/hicolor/64x64/apps/register-mga.pngbin0 -> 3349 bytes
-rw-r--r--menu/icons/image_processing_section.pngbin0 -> 2077 bytes
-rw-r--r--menu/icons/instant_messaging_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/internet_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/interpreters_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/irc_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/kde_section.pngbin0 -> 2480 bytes
-rw-r--r--menu/icons/large/accessibility_section.pngbin0 -> 4946 bytes
-rw-r--r--menu/icons/large/addressbook_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/adventure_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/amusement_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/applications_section.pngbin0 -> 4226 bytes
-rw-r--r--menu/icons/large/arcade_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/archiving_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/artificial_intelligence_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/astronomy_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/backup_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/biology_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/boards_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/boot_init_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/cards_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/cd_burning_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/chat_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/chemistry_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/chinese_section.pngbin0 -> 5893 bytes
-rw-r--r--menu/icons/large/code_generator_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/communications_fax_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/communications_other_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/communications_phone_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/communications_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/compression_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/computer_science_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/configuration_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/data_visualization_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/databases_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/development_environment_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/development_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/development_tools_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/documentation_section.pngbin0 -> 12712 bytes
-rw-r--r--menu/icons/large/editors_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/education_economy_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_geography_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_history_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_languages_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_literature_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_mathematics.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_other_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_sciences.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_sport_section.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/education_tool.pngbin0 -> 3535 bytes
-rw-r--r--menu/icons/large/electricity_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/emulators_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/file_tools_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/file_transfer_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/finances_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/geosciences_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/gnome_section.pngbin0 -> 3678 bytes
-rw-r--r--menu/icons/large/graphics_section.pngbin0 -> 4687 bytes
-rw-r--r--menu/icons/large/graphs_section.pngbin0 -> 4687 bytes
-rw-r--r--menu/icons/large/hardware_configuration_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/hardware_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/image_processing_section.pngbin0 -> 4687 bytes
-rw-r--r--menu/icons/large/instant_messaging_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/internet_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/interpreters_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/irc_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/kde_section.pngbin0 -> 5460 bytes
-rw-r--r--menu/icons/large/mageia.pngbin0 -> 2549 bytes
-rw-r--r--menu/icons/large/mail_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/mathematics_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/monitoring_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/more_applications_other_section.pngbin0 -> 4226 bytes
-rw-r--r--menu/icons/large/more_applications_section.pngbin0 -> 4226 bytes
-rw-r--r--menu/icons/large/multimedia_section.pngbin0 -> 4687 bytes
-rw-r--r--menu/icons/large/networking_configuration_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/networking_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/networking_www_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/news_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/numerical_analysis_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/office_accessories_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/office_drawing_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/office_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/other_amusement.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/other_archiving.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/other_configuration.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/other_networking.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/other_sciences.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/packaging_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/parallel_computing_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/pda_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/physics_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/presentation_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/printing_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/publishing_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/puzzle_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/remote_access_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/robotics_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/sciences_section.pngbin0 -> 2844 bytes
-rw-r--r--menu/icons/large/shells_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/sound_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/sport_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/spreadsheet_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/strategy_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/system_other_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/system_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/taskmanagement_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/terminals_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/text_tools_section.pngbin0 -> 6109 bytes
-rw-r--r--menu/icons/large/timemanagement_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/large/toys_section.pngbin0 -> 4092 bytes
-rw-r--r--menu/icons/large/video_conferences_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/video_section.pngbin0 -> 4687 bytes
-rw-r--r--menu/icons/large/web_browser_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/web_editors_section.pngbin0 -> 5453 bytes
-rw-r--r--menu/icons/large/windowmanager_section.pngbin0 -> 5391 bytes
-rw-r--r--menu/icons/large/wordprocessor_section.pngbin0 -> 4213 bytes
-rw-r--r--menu/icons/mageia.pngbin0 -> 1788 bytes
-rw-r--r--menu/icons/mail_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/mathematics_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/mini/accessibility_section.pngbin0 -> 1476 bytes
-rw-r--r--menu/icons/mini/addressbook_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/adventure_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/amusement_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/applications_section.pngbin0 -> 1316 bytes
-rw-r--r--menu/icons/mini/arcade_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/archiving_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/artificial_intelligence_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/astronomy_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/backup_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/biology_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/boards_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/boot_init_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/cards_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/cd_burning_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/chat_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/chemistry_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/chinese_section.pngbin0 -> 1594 bytes
-rw-r--r--menu/icons/mini/code_generator_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/communications_fax_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/communications_other_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/communications_phone_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/communications_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/compression_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/computer_science_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/configuration_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/data_visualization_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/databases_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/development_environment_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/development_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/development_tools_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/documentation_section.pngbin0 -> 2780 bytes
-rw-r--r--menu/icons/mini/editors_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/education_economy_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_geography_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_history_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_languages_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_literature_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_mathematics.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_other_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_sciences.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_sport_section.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/education_tool.pngbin0 -> 1147 bytes
-rw-r--r--menu/icons/mini/electricity_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/emulators_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/file_tools_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/file_transfer_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/finances_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/geosciences_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/gnome_section.pngbin0 -> 1228 bytes
-rw-r--r--menu/icons/mini/graphics_section.pngbin0 -> 1414 bytes
-rw-r--r--menu/icons/mini/graphs_section.pngbin0 -> 1414 bytes
-rw-r--r--menu/icons/mini/hardware_configuration_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/hardware_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/image_processing_section.pngbin0 -> 1414 bytes
-rw-r--r--menu/icons/mini/instant_messaging_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/internet_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/interpreters_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/irc_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/kde_section.pngbin0 -> 1555 bytes
-rw-r--r--menu/icons/mini/mageia.pngbin0 -> 1210 bytes
-rw-r--r--menu/icons/mini/mail_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/mathematics_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/monitoring_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/more_applications_other_section.pngbin0 -> 1316 bytes
-rw-r--r--menu/icons/mini/more_applications_section.pngbin0 -> 1316 bytes
-rw-r--r--menu/icons/mini/multimedia_section.pngbin0 -> 1414 bytes
-rw-r--r--menu/icons/mini/networking_configuration_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/networking_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/networking_www_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/news_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/numerical_analysis_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/office_accessories_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/office_drawing_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/office_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/other_amusement.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/other_archiving.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/other_configuration.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/other_networking.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/other_sciences.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/packaging_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/parallel_computing_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/pda_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/physics_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/presentation_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/printing_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/publishing_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/puzzle_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/remote_access_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/robotics_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/sciences_section.pngbin0 -> 971 bytes
-rw-r--r--menu/icons/mini/shells_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/sound_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/sport_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/spreadsheet_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/strategy_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/system_other_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/system_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/taskmanagement_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/terminals_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/text_tools_section.pngbin0 -> 1582 bytes
-rw-r--r--menu/icons/mini/timemanagement_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/mini/toys_section.pngbin0 -> 1318 bytes
-rw-r--r--menu/icons/mini/video_conferences_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/video_section.pngbin0 -> 1414 bytes
-rw-r--r--menu/icons/mini/web_browser_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/web_editors_section.pngbin0 -> 1493 bytes
-rw-r--r--menu/icons/mini/windowmanager_section.pngbin0 -> 1562 bytes
-rw-r--r--menu/icons/mini/wordprocessor_section.pngbin0 -> 1279 bytes
-rw-r--r--menu/icons/monitoring_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/more_applications_other_section.pngbin0 -> 1926 bytes
-rw-r--r--menu/icons/more_applications_section.pngbin0 -> 1926 bytes
-rw-r--r--menu/icons/multimedia_section.pngbin0 -> 2077 bytes
-rw-r--r--menu/icons/networking_configuration_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/networking_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/networking_www_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/news_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/numerical_analysis_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/office_accessories_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/office_drawing_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/office_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/other_amusement.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/other_archiving.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/other_configuration.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/other_networking.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/other_sciences.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/packaging_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/parallel_computing_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/pda_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/physics_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/presentation_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/printing_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/publishing_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/puzzle_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/remote_access_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/robotics_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/sciences_section.pngbin0 -> 1329 bytes
-rw-r--r--menu/icons/shells_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/sound_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/sport_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/spreadsheet_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/strategy_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/system_other_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/system_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/taskmanagement_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/terminals_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/text_tools_section.pngbin0 -> 3230 bytes
-rw-r--r--menu/icons/timemanagement_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/icons/toys_section.pngbin0 -> 1726 bytes
-rw-r--r--menu/icons/video_conferences_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/video_section.pngbin0 -> 2077 bytes
-rw-r--r--menu/icons/web_browser_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/web_editors_section.pngbin0 -> 2683 bytes
-rw-r--r--menu/icons/windowmanager_section.pngbin0 -> 1836 bytes
-rw-r--r--menu/icons/wordprocessor_section.pngbin0 -> 2040 bytes
-rw-r--r--menu/make-session.filter1
-rwxr-xr-xmenu/make-session.script2
-rw-r--r--menu/menu.dtd84
-rwxr-xr-xmenu/menustyle.csh13
-rwxr-xr-xmenu/menustyle.sh10
-rwxr-xr-xmenu/update-menus48
-rw-r--r--menu/update-menus.filter1
-rwxr-xr-xmenu/update-menus.script2
-rwxr-xr-xmenu/xdg_menu2300
408 files changed, 3792 insertions, 0 deletions
diff --git a/menu/applications.menu.in b/menu/applications.menu.in
new file mode 100644
index 0000000..4373389
--- /dev/null
+++ b/menu/applications.menu.in
@@ -0,0 +1,1016 @@
+<?xml version="1.0"?>
+<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://standards.freedesktop.org/menu-spec/menu-1.0.dtd">
+<Menu>
+ <Name>Applications</Name>
+ <Layout>
+ <Menuname inline="false">Internet</Menuname>
+ <Menuname inline="false">Office</Menuname>
+ <Menuname inline="false">Graphics</Menuname>
+ <Menuname inline="false">SoundVideo</Menuname>
+ <Menuname inline="false">Tools</Menuname>
+ <Menuname inline="false">Development</Menuname>
+ <Menuname inline="false">Games</Menuname>
+ <Menuname inline="false">Education</Menuname>
+ <Menuname inline="false">Sciences</Menuname>
+ <Menuname inline="false">Documentation</Menuname>
+ <Merge type="menus"/>
+ <Merge type="files"/>
+ <Separator/>
+ <Filename>rpmdrake.desktop</Filename>
+ </Layout>
+ <DefaultLayout inline="true" inline_limit="1">
+ <Merge type="files"/>
+ <Menuname>More</Menuname>
+ <Merge type="menus"/>
+ </DefaultLayout>
+ <DefaultMergeDirs/>
+ <KDELegacyDirs/>
+ <DefaultAppDirs/>
+ <DefaultDirectoryDirs/>
+ <Directory>mandrivalinux.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux</Category>
+ <Filename>rpmdrake.desktop</Filename>
+ </Include>
+ <Menu>
+ <Name>Internet</Name>
+ <Directory>mandriva-internet.directory</Directory>
+ <Include>
+ <And>
+ <Or>
+ <Or>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Or>
+ <Not>
+ <Category>Email</Category>
+ <Category>Dialup</Category>
+ <Category>InstantMessaging</Category>
+ <Category>Chat</Category>
+ <Category>IRCClient</Category>
+ <Category>FileTransfer</Category>
+ <Category>HamRadio</Category>
+ <Category>News</Category>
+ <Category>P2P</Category>
+ <Category>RemoteAccess</Category>
+ <Category>Telephony</Category>
+ <Category>VideoConference</Category>
+ <Category>WebBrowser</Category>
+ <Category>@ALTERNATIVE_DESKTOP@</Category>
+ <Category>@ALTERNATIVE_TOOLKIT@</Category>
+ </Not>
+ </Or>
+ <Or>
+ <Category>X-MandrivaLinux-Internet</Category>
+ <Category>Network</Category>
+ </Or>
+ <Not>
+ <Category>WebDevelopment</Category>
+ <Category>X-MandrivaLinux-More</Category>
+ </Not>
+ </And>
+ </Include>
+ <Menu>
+ <Name>More</Name>
+ <Directory>mandriva-internet-more.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <And>
+ <Or>
+ <Not>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Not>
+ <Category>X-MandrivaLinux-More</Category>
+ </Or>
+ <Not>
+ <Category>WebDevelopment</Category>
+ </Not>
+ <Category>Network</Category>
+ </And>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Office</Name>
+ <Directory>mandriva-office.directory</Directory>
+ <Layout>
+ <Filename>libreoffice-startcenter.desktop</Filename>
+ <Filename>libreoffice-writer.desktop</Filename>
+ <Filename>libreoffice-calc.desktop</Filename>
+ <Filename>libreoffice-impress.desktop</Filename>
+ <Filename>libreoffice-base.desktop</Filename>
+ <Filename>libreoffice-draw.desktop</Filename>
+ <Filename>web.desktop</Filename>
+ <Separator/>
+ <Merge type="files"/>
+ <Menuname>More</Menuname>
+ <Merge type="menus"/>
+ </Layout>
+ <Include>
+ <And>
+ <Or>
+ <Or>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Or>
+ <Not>
+ <Category>Calendar</Category>
+ <Category>ContactManagement</Category>
+ <Category>Database</Category>
+ <Category>Dictionary</Category>
+ <Category>Chart</Category>
+ <Category>Email</Category>
+ <Category>Finance</Category>
+ <Category>FlowChart</Category>
+ <Category>PDA</Category>
+ <Category>ProjectManagement</Category>
+ <Category>Presentation</Category>
+ <Category>Spreadsheet</Category>
+ <Category>WordProcessor</Category>
+ <Category>Photography</Category>
+ <Category>Publishing</Category>
+ <Category>Viewer</Category>
+ <Category>@ALTERNATIVE_DESKTOP@</Category>
+ <Category>@ALTERNATIVE_TOOLKIT@</Category>
+ </Not>
+ </Or>
+ <Or>
+ <Category>X-MandrivaLinux-Office</Category>
+ <Category>Office</Category>
+ </Or>
+ <Not>
+ <Category>Utility</Category>
+ <Category>X-MandrivaLinux-More</Category>
+ </Not>
+ </And>
+ </Include>
+ <Menu>
+ <Name>More</Name>
+ <Directory>mandriva-office-more.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <And>
+ <Or>
+ <Not>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Not>
+ <Category>X-MandrivaLinux-More</Category>
+ </Or>
+ <Or>
+ <Category>Office</Category>
+ <Category>X-MandrivaLinux-Office-Other</Category>
+ </Or>
+ <Not>
+ <Category>Utility</Category>
+ </Not>
+ </And>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Graphics</Name>
+ <Directory>mandriva-graphics.directory</Directory>
+ <Include>
+ <And>
+ <Or>
+ <Or>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Or>
+ <Not>
+ <Category>2DGraphics</Category>
+ <Category>VectorGraphics</Category>
+ <Category>RasterGraphics</Category>
+ <Category>3DGraphics</Category>
+ <Category>Scanning</Category>
+ <Category>OCR</Category>
+ <Category>Photography</Category>
+ <Category>Publishing</Category>
+ <Category>Viewer</Category>
+ <Category>@ALTERNATIVE_DESKTOP@</Category>
+ <Category>@ALTERNATIVE_TOOLKIT@</Category>
+ </Not>
+ </Or>
+ <Or>
+ <Category>X-MandrivaLinux-Multimedia-Graphics</Category>
+ <Category>Graphics</Category>
+ </Or>
+ <Not>
+ <Category>X-MandrivaLinux-More</Category>
+ </Not>
+ </And>
+ </Include>
+ <Menu>
+ <Name>More</Name>
+ <Directory>mandriva-graphics-more.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <And>
+ <Or>
+ <Not>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Not>
+ <Category>X-MandrivaLinux-More</Category>
+ </Or>
+ <Category>Graphics</Category>
+ </And>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>SoundVideo</Name>
+ <Directory>mandriva-soundvideo.directory</Directory>
+ <Include>
+ <And>
+ <Or>
+ <Or>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Or>
+ <Not>
+ <Category>Database</Category>
+ <Category>HamRadio</Category>
+ <Category>Midi</Category>
+ <Category>Mixer</Category>
+ <Category>Sequencer</Category>
+ <Category>Tuner</Category>
+ <Category>TV</Category>
+ <Category>AudioVideoEditing</Category>
+ <Category>Player</Category>
+ <Category>Recorder</Category>
+ <Category>Music</Category>
+ <Category>@ALTERNATIVE_DESKTOP@</Category>
+ <Category>@ALTERNATIVE_TOOLKIT@</Category>
+ </Not>
+ </Or>
+ <Or>
+ <Category>X-MandrivaLinux-Multimedia</Category>
+ <Category>X-MandrivaLinux-Multimedia-Sound</Category>
+ <Category>X-MandrivaLinux-Multimedia-Video</Category>
+ <Category>AudioVideo</Category>
+ <Category>Audio</Category>
+ <Category>Video</Category>
+ </Or>
+ <Not>
+ <Category>X-MandrivaLinux-More</Category>
+ <Category>DiscBurning</Category>
+ </Not>
+ </And>
+ </Include>
+ <Menu>
+ <Name>More</Name>
+ <Directory>mandriva-soundvideo-more.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <And>
+ <Or>
+ <Not>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ <Category>DiscBurning</Category>
+ </Not>
+ <Category>X-MandrivaLinux-More</Category>
+ </Or>
+ <Or>
+ <Category>X-MandrivaLinux-Multimedia-Other</Category>
+ <Category>X-MandrivaLinux-Multimedia-Sound</Category>
+ <Category>X-MandrivaLinux-Multimedia-Video</Category>
+ <Category>AudioVideo</Category>
+ <Category>Video</Category>
+ <Category>Audio</Category>
+ </Or>
+ </And>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Tools</Name>
+ <Directory>mandriva-tools.directory</Directory>
+ <Layout>
+ <Menuname inline="false">SystemTools</Menuname>
+ <Menuname inline="false">Accessibility</Menuname>
+ <Menuname inline="false">Emulators</Menuname>
+ <Separator/>
+ <Merge type="files"/>
+ <Menuname>More</Menuname>
+ <Merge type="menus"/>
+ </Layout>
+ <Include>
+ <And>
+ <Or>
+ <Or>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Or>
+ <Not>
+ <Category>TextTools</Category>
+ <Category>TelephonyTools</Category>
+ <Category>Archiving</Category>
+ <Category>Calculator</Category>
+ <Category>Clock</Category>
+ <Category>TextEditor</Category>
+ <Category>@ALTERNATIVE_DESKTOP@</Category>
+ <Category>@ALTERNATIVE_TOOLKIT@</Category>
+ </Not>
+ </Or>
+ <Or>
+ <Category>Utility</Category>
+ <Category>TextEditor</Category>
+ <Category>TerminalEmulator</Category>
+ <Category>Settings</Category>
+ <Category>DiscBurning</Category>
+ </Or>
+ <Not>
+ <And>
+ <Or>
+ <Category>Accessibility</Category>
+ <Category>Monitor</Category>
+ <Category>System</Category>
+ <Category>TerminalEmulator</Category>
+ <Category>Emulator</Category>
+ <Category>HardwareSettings</Category>
+ <Category>PackageManager</Category>
+ <Category>X-MandrivaLinux-More</Category>
+ <Category>Printing</Category>
+ <Category>X-KDE-settings-accessibility</Category>
+ <Category>X-KDE-settings-components</Category>
+ <Category>X-KDE-settings-desktop</Category>
+ <Category>X-KDE-settings-looknfeel</Category>
+ <Category>X-KDE-settings-network</Category>
+ <Category>X-KDE-settings-webbrowsing</Category>
+ <Category>X-KDE-settings-peripherals</Category>
+ <Category>X-KDE-settings-hardware</Category>
+ <Category>X-KDE-settings-power</Category>
+ <Category>X-KDE-settings-security</Category>
+ <Category>X-KDE-settings-sound</Category>
+ <Category>X-KDE-settings-system</Category>
+ <Category>X-KDE-information</Category>
+ <And>
+ <Category>GNOME</Category>
+ <Category>Settings</Category>
+ </And>
+ </Or>
+ <Not>
+ <Category>TextEditor</Category>
+ <Category>TerminalEmulator</Category>
+ </Not>
+ </And>
+ </Not>
+ </And>
+ </Include>
+ <Menu>
+ <Name>SystemTools</Name>
+ <Directory>mandriva-systemtools.directory</Directory>
+ <Layout>
+ <Filename>mageia-drakconf.desktop</Filename>
+ <Filename>kde4-systemsettings.desktop</Filename>
+ <Separator/>
+ <Merge type="all"/>
+ </Layout>
+ <Include>
+ <And>
+ <!-- never show those, they are in a separate menu for GNOME and not relevant for KDE -->
+ <Not>
+ <Category>GNOME</Category>
+ </Not>
+ <Category>HardwareSettings</Category>
+ </And>
+ <And>
+ <Or>
+ <Or>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Or>
+ <Not>
+ <Category>FileTools</Category>
+ <Category>FileSystem</Category>
+ <Category>Applet</Category>
+ <Category>@ALTERNATIVE_DESKTOP@</Category>
+ <Category>@ALTERNATIVE_TOOLKIT@</Category>
+ </Not>
+ </Or>
+ <Or>
+ <And>
+ <Category>System</Category>
+ <Not>
+ <Category>Emulator</Category>
+ <Category>TerminalEmulator</Category>
+ </Not>
+ </And>
+ <Category>Monitor</Category>
+ </Or>
+ </And>
+ <Category>PackageManager</Category>
+ <Category>Printing</Category>
+ </Include>
+ <Exclude>
+ <Filename>rpmdrake.desktop</Filename>
+ </Exclude>
+ </Menu>
+ <Menu>
+ <Name>Accessibility</Name>
+ <Directory>mandriva-accessibility.directory</Directory>
+ <Include>
+ <And>
+ <Not>
+ <Category>Settings</Category>
+ </Not>
+ <Or>
+ <Category>Accessibility</Category>
+ </Or>
+ </And>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Emulators</Name>
+ <Directory>mandriva-emulators.directory</Directory>
+ <Include>
+ <Category>Emulator</Category>
+ </Include>
+ </Menu>
+ <!-- always present, just to ensure GNOME preferences don't appear in any menu -->
+ <Menu>
+ <Name>GNOME Preferences</Name>
+ <Directory>mandriva-system-configuration-gnome.directory</Directory>
+ <Include>
+ <And>
+ <Category>GNOME</Category>
+ <Or>
+ <Category>Settings</Category>
+ <Category>DesktopSettings</Category>
+ </Or>
+ </And>
+ <Category>X-MandrivaLinux-System-Configuration-GNOME-Advanced</Category>
+ <Category>X-MandrivaLinux-System-Configuration-GNOME</Category>
+ </Include>
+ </Menu>
+ <!-- always present, just to ensure KDE preferences don't appear in any menu -->
+ <Menu>
+ <Name>KDE Preferences</Name>
+ <Directory>mandriva-system-configuration-kde.directory</Directory>
+ <MergeFile>/etc/xdg/kde/menus/kde-settings.menu</MergeFile>
+ </Menu>
+ <Menu>
+ <Name>KDE Info Center</Name>
+ <Directory>mandriva-system-configuration-kde.directory</Directory>
+ <MergeFile>/etc/xdg/kde/menus/kde-information.menu</MergeFile>
+ </Menu>
+ <Menu>
+ <Name>More</Name>
+ <Directory>mandriva-tools-more.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <And>
+ <Or>
+ <Not>
+ <Category>@MAIN_DESKTOP@</Category>
+ <Category>@MAIN_TOOLKIT@</Category>
+ <Category>X-MandrivaLinux-CrossDesktop</Category>
+ </Not>
+ <Category>X-MandrivaLinux-More</Category>
+ </Or>
+ <Not>
+ <And>
+ <Category>GNOME</Category>
+ <Category>Settings</Category>
+ </And>
+ <Category>Accessibility</Category>
+ <Category>HardwareSettings</Category>
+ <Category>Emulator</Category>
+ <Category>PackageManager</Category>
+ <Category>Printing</Category>
+ </Not>
+ <Or>
+ <Category>Utility</Category>
+ <And>
+ <Category>System</Category>
+ <Category>Emulator</Category>
+ </And>
+ <Category>TextEditor</Category>
+ <Category>Settings</Category>
+ <Category>Monitor</Category>
+ <Category>DiscBurning</Category>
+ </Or>
+ </And>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Development</Name>
+ <Layout>
+ <Menuname>Databases</Menuname>
+ <Menuname>Development Environment</Menuname>
+ <Menuname>Web Development</Menuname>
+ <Menuname>Interpreters</Menuname>
+ <Menuname>Tools</Menuname>
+ <Menuname>Code Generators</Menuname>
+ <Merge type="menus"/>
+ <Merge type="files"/>
+ </Layout>
+ <Directory>mandriva-development.directory</Directory>
+ <Include>
+ <And>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Development</Category>
+ <Category>Development</Category>
+ </Or>
+ <Not>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Development-Tools</Category>
+ <Category>X-MandrivaLinux-MoreApplications-Development-Other</Category>
+ <Category>Building</Category>
+ <Category>Profiling</Category>
+ <Category>Debugger</Category>
+ <Category>RevisionControl</Category>
+ <Category>Translation</Category>
+ <Category>IDE</Category>
+ <Category>GUIDesigner</Category>
+ <Category>X-MandrivaLinux-MoreApplications-Development-DevelopmentEnvironments</Category>
+ <Category>WebDevelopment</Category>
+ </Or>
+ </Not>
+ </And>
+ </Include>
+ <Menu>
+ <Name>Databases</Name>
+ <Directory>mandriva-development-databases.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Databases</Category>
+ <Category>Database</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Development Environments</Name>
+ <Directory>mandriva-development-developmentenvironments.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Development-DevelopmentEnvironments</Category>
+ <Category>IDE</Category>
+ <Category>GUIDesigner</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Web Development</Name>
+ <Directory>mandriva-development-webdevelopment.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-Internet-WebEditors</Category>
+ <Category>WebDevelopment</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Tools</Name>
+ <Directory>mandriva-development-tools.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Development-Other</Category>
+ <Category>X-MandrivaLinux-MoreApplications-Development-Tools</Category>
+ <Category>X-MandrivaLinux-MoreApplications-Development-Interpreters</Category>
+ <Category>Building</Category>
+ <Category>Profiling</Category>
+ <Category>Debugger</Category>
+ <Category>RevisionControl</Category>
+ <And>
+ <Category>Development</Category>
+ <Category>Translation</Category>
+ </And>
+ </Or>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Games</Name>
+ <Layout>
+ <Menuname>Adventure</Menuname>
+ <Menuname>Arcade</Menuname>
+ <Menuname>Boards</Menuname>
+ <Menuname>Cards</Menuname>
+ <Menuname>Puzzles</Menuname>
+ <Menuname>Sports</Menuname>
+ <Menuname>Strategy</Menuname>
+ <Menuname>Toys</Menuname>
+ <Merge type="menus"/>
+ <Merge type="files"/>
+ </Layout>
+ <Directory>mandriva-games.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games</Category>
+ <Category>Game</Category>
+ </Or>
+ </Include>
+ <Menu>
+ <Name>Adventure</Name>
+ <Directory>mandriva-games-adventure.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Adventure</Category>
+ <Category>AdventureGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Arcade</Name>
+ <Directory>mandriva-games-arcade.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Arcade</Category>
+ <Category>ArcadeGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Boards</Name>
+ <Directory>mandriva-games-boards.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Boards</Category>
+ <Category>BoardGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Cards</Name>
+ <Directory>mandriva-games-cards.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Cards</Category>
+ <Category>CardGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Puzzles</Name>
+ <Directory>mandriva-games-puzzles.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Puzzles</Category>
+ <Category>LogicGame</Category>
+ <Category>BlocksGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Sports</Name>
+ <Directory>mandriva-games-sports.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Sports</Category>
+ <Category>SportsGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Strategy</Name>
+ <Directory>mandriva-games-strategy.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Strategy</Category>
+ <Category>StrategyGame</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Other</Name>
+ <Directory>mandriva-games-other.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Other</Category>
+ <Category>KidsGame</Category>
+ <Category>RolePlaying</Category>
+ <Category>Simulation</Category>
+ <Category>ActionGame</Category>
+ <And>
+ <Category>Game</Category>
+ <Category>Emulator</Category>
+ </And>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Toys</Name>
+ <Directory>mandriva-games-toys.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Games-Toys</Category>
+ <Category>Amusement</Category>
+ </Or>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Education</Name>
+ <Layout>
+ <Menuname>Economy</Menuname>
+ <Menuname>Geography</Menuname>
+ <Menuname>History</Menuname>
+ <Menuname>Languages</Menuname>
+ <Menuname>Literature</Menuname>
+ <Menuname>Sciences</Menuname>
+ <Menuname>Sports</Menuname>
+ <Menuname>Other</Menuname>
+ <Merge type="menus"/>
+ <Merge type="files"/>
+ </Layout>
+ <Directory>mandriva-education.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education</Category>
+ <Category>Education</Category>
+ </Or>
+ </Include>
+ <Menu>
+ <Name>Economy</Name>
+ <Directory>mandriva-education-economy.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Economy</Category>
+ <Category>Economy</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Geography</Name>
+ <Directory>mandriva-education-geography.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Geography</Category>
+ <Category>Geography</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>History</Name>
+ <Directory>mandriva-education-history.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-History</Category>
+ <Category>History</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Languages</Name>
+ <Directory>mandriva-education-languages.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Languages</Category>
+ <Category>Languages</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Literature</Name>
+ <Directory>mandriva-education-literature.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Literature</Category>
+ <Category>Literature</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Sciences</Name>
+ <Directory>mandriva-education-sciences.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Sciences</Category>
+ <And>
+ <Category>Science</Category>
+ <Category>Education</Category>
+ </And>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Sports</Name>
+ <Directory>mandriva-education-sports.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Sports</Category>
+ <Category>Sports</Category>
+ </Or>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Other</Name>
+ <Directory>mandriva-education-other.directory</Directory>
+ <Include>
+ <Or>
+ <Category>X-MandrivaLinux-MoreApplications-Education-Other</Category>
+ <Category>Art</Category>
+ <Category>Construction</Category>
+ <Category>Teaching</Category>
+ <And>
+ <Category>Education</Category>
+ <Category>Music</Category>
+ </And>
+ </Or>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Sciences</Name>
+ <Layout>
+ <Menuname>Artificial Intelligence</Menuname>
+ <Menuname>Astronomy</Menuname>
+ <Menuname>Biology</Menuname>
+ <Menuname>Chemistry</Menuname>
+ <Menuname>Computer Science</Menuname>
+ <Menuname>Data Visualization</Menuname>
+ <Menuname>Electricity</Menuname>
+ <Menuname>Geosciences</Menuname>
+ <Menuname>Image Processing</Menuname>
+ <Menuname>Mathematics</Menuname>
+ <Menuname>Numeric Analysis</Menuname>
+ <Menuname>Parallel Computing</Menuname>
+ <Menuname>Physics</Menuname>
+ <Menuname>Robotics</Menuname>
+ <Menuname>Other</Menuname>
+ <Merge type="menus"/>
+ <Merge type="files"/>
+ </Layout>
+ <Directory>mandriva-sciences.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences</Category>
+ <Category>Science</Category>
+ </Include>
+ <Menu>
+ <Name>Artificial Intelligence</Name>
+ <Directory>mandriva-sciences-artificialintelligence.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-ArtificialIntelligence</Category>
+ <Category>ArtificialIntelligence</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Astronomy</Name>
+ <Directory>mandriva-sciences-astronomy.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Astronomy</Category>
+ <Category>Astronomy</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Biology</Name>
+ <Directory>mandriva-sciences-biology.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Biology</Category>
+ <Category>Biology</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Chemistry</Name>
+ <Directory>mandriva-sciences-chemistry.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Chemistry</Category>
+ <Category>Chemistry</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Computer Science</Name>
+ <Directory>mandriva-sciences-computerscience.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-ComputerScience</Category>
+ <Category>ComputerScience</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Data Visualization</Name>
+ <Directory>mandriva-sciences-datavisualization.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-DataVisualization</Category>
+ <Category>DataVisualization</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Electricity</Name>
+ <Directory>mandriva-sciences-electricity.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Electricity</Category>
+ <Category>Electricity</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Geosciences</Name>
+ <Directory>mandriva-sciences-geosciences.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Geosciences</Category>
+ <Category>Geoscience</Category>
+ <Category>Geology</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Image Processing</Name>
+ <Directory>mandriva-sciences-imageprocessing.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-ImageProcessing</Category>
+ <Category>ImageProcessing</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Mathematics</Name>
+ <Directory>mandriva-sciences-mathematics.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Mathematics</Category>
+ <Category>Math</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Numeric Analysis</Name>
+ <Directory>mandriva-sciences-numericanalysis.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-NumericAnalysis</Category>
+ <Category>NumericAnalysis</Category>
+ <Category>NumericalAnalysis</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Parallel Computing</Name>
+ <Directory>mandriva-sciences-parallelcomputing.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-ParallelComputing</Category>
+ <Category>ParallelComputing</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Physics</Name>
+ <Directory>mandriva-sciences-physics.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Physics</Category>
+ <Category>Physics</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Robotics</Name>
+ <Directory>mandriva-sciences-robotics.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Robotics</Category>
+ <Category>Robotics</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Other</Name>
+ <Directory>mandriva-sciences-other.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Sciences-Other</Category>
+ <Category>MedicalSoftware</Category>
+ <Category>Electronics</Category>
+ <Category>Engineering</Category>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Documentation</Name>
+ <Directory>mandriva-documentation.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-MoreApplications-Documentation</Category>
+ <Category>Documentation</Category>
+ </Include>
+ </Menu>
+ <!--
+ <Menu>
+ <Name>Other</Name>
+ <Directory>mandriva-other.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <All/>
+ </Include>
+ <Exclude>
+ <Category>Core</Category>
+ </Exclude>
+ </Menu>
+ -->
+ <Menu>
+ <Name>.hidden</Name>
+ <Directory>mandriva-hidden.directory</Directory>
+ <Include>
+ <Category>X-MandrivaLinux-.hidden</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Settings</Name>
+ <Directory>kde-settings.directory</Directory>
+ <MergeFile>/etc/xdg/kde/menus/kde-settings.menu</MergeFile>
+ </Menu>
+ <MergeFile>applications-kmenuedit.menu</MergeFile>
+</Menu>
diff --git a/menu/desktop-directories/mandriva-accessibility.directory.in b/menu/desktop-directories/mandriva-accessibility.directory.in
new file mode 100644
index 0000000..f43220c
--- /dev/null
+++ b/menu/desktop-directories/mandriva-accessibility.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Accessibility
+Icon=accessibility_section
diff --git a/menu/desktop-directories/mandriva-development-databases.directory.in b/menu/desktop-directories/mandriva-development-databases.directory.in
new file mode 100644
index 0000000..53be655
--- /dev/null
+++ b/menu/desktop-directories/mandriva-development-databases.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Databases
+Icon=databases_section
diff --git a/menu/desktop-directories/mandriva-development-developmentenvironments.directory.in b/menu/desktop-directories/mandriva-development-developmentenvironments.directory.in
new file mode 100644
index 0000000..dd6b40e
--- /dev/null
+++ b/menu/desktop-directories/mandriva-development-developmentenvironments.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Development Environments
+Icon=development_environment_section
diff --git a/menu/desktop-directories/mandriva-development-tools.directory.in b/menu/desktop-directories/mandriva-development-tools.directory.in
new file mode 100644
index 0000000..df038a7
--- /dev/null
+++ b/menu/desktop-directories/mandriva-development-tools.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Tools
+Icon=development_tools_section
diff --git a/menu/desktop-directories/mandriva-development-webdevelopment.directory.in b/menu/desktop-directories/mandriva-development-webdevelopment.directory.in
new file mode 100644
index 0000000..477debd
--- /dev/null
+++ b/menu/desktop-directories/mandriva-development-webdevelopment.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Web Development
+Icon=web_editors_section
diff --git a/menu/desktop-directories/mandriva-development.directory.in b/menu/desktop-directories/mandriva-development.directory.in
new file mode 100644
index 0000000..410858c
--- /dev/null
+++ b/menu/desktop-directories/mandriva-development.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Development
+Icon=development_section
diff --git a/menu/desktop-directories/mandriva-documentation.directory.in b/menu/desktop-directories/mandriva-documentation.directory.in
new file mode 100644
index 0000000..c4e892d
--- /dev/null
+++ b/menu/desktop-directories/mandriva-documentation.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Documentation
+Icon=documentation_section
diff --git a/menu/desktop-directories/mandriva-education-economy.directory.in b/menu/desktop-directories/mandriva-education-economy.directory.in
new file mode 100644
index 0000000..582e3c5
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-economy.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Economy
+Icon=education_economy_section
diff --git a/menu/desktop-directories/mandriva-education-geography.directory.in b/menu/desktop-directories/mandriva-education-geography.directory.in
new file mode 100644
index 0000000..738fd42
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-geography.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Geography
+Icon=education_geography_section
diff --git a/menu/desktop-directories/mandriva-education-history.directory.in b/menu/desktop-directories/mandriva-education-history.directory.in
new file mode 100644
index 0000000..80b37e1
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-history.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=History
+Icon=education_history_section
diff --git a/menu/desktop-directories/mandriva-education-languages.directory.in b/menu/desktop-directories/mandriva-education-languages.directory.in
new file mode 100644
index 0000000..c8ad555
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-languages.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Languages
+Icon=education_languages_section
diff --git a/menu/desktop-directories/mandriva-education-literature.directory.in b/menu/desktop-directories/mandriva-education-literature.directory.in
new file mode 100644
index 0000000..8643eb9
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-literature.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Literature
+Icon=education_literature_section
diff --git a/menu/desktop-directories/mandriva-education-other.directory.in b/menu/desktop-directories/mandriva-education-other.directory.in
new file mode 100644
index 0000000..18dc436
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-other.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Other
+Icon=education_other_section
diff --git a/menu/desktop-directories/mandriva-education-sciences.directory.in b/menu/desktop-directories/mandriva-education-sciences.directory.in
new file mode 100644
index 0000000..b8c71b7
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-sciences.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Sciences
+Icon=education_sciences
diff --git a/menu/desktop-directories/mandriva-education-sports.directory.in b/menu/desktop-directories/mandriva-education-sports.directory.in
new file mode 100644
index 0000000..877f2bc
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education-sports.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Sports
+Icon=education_sport_section
diff --git a/menu/desktop-directories/mandriva-education.directory.in b/menu/desktop-directories/mandriva-education.directory.in
new file mode 100644
index 0000000..edca46a
--- /dev/null
+++ b/menu/desktop-directories/mandriva-education.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Education
+Icon=education_section
diff --git a/menu/desktop-directories/mandriva-emulators.directory.in b/menu/desktop-directories/mandriva-emulators.directory.in
new file mode 100644
index 0000000..273fdab
--- /dev/null
+++ b/menu/desktop-directories/mandriva-emulators.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Emulators
+Icon=emulators_section
diff --git a/menu/desktop-directories/mandriva-games-adventure.directory.in b/menu/desktop-directories/mandriva-games-adventure.directory.in
new file mode 100644
index 0000000..2aa1562
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-adventure.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Adventure
+Icon=adventure_section
diff --git a/menu/desktop-directories/mandriva-games-arcade.directory.in b/menu/desktop-directories/mandriva-games-arcade.directory.in
new file mode 100644
index 0000000..c1b0e90
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-arcade.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Arcade
+Icon=arcade_section
diff --git a/menu/desktop-directories/mandriva-games-boards.directory.in b/menu/desktop-directories/mandriva-games-boards.directory.in
new file mode 100644
index 0000000..18954fa
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-boards.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Boards
+Icon=boards_section
diff --git a/menu/desktop-directories/mandriva-games-cards.directory.in b/menu/desktop-directories/mandriva-games-cards.directory.in
new file mode 100644
index 0000000..2ac788f
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-cards.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Cards
+Icon=cards_section
diff --git a/menu/desktop-directories/mandriva-games-other.directory.in b/menu/desktop-directories/mandriva-games-other.directory.in
new file mode 100644
index 0000000..39f3a69
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-other.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Other
+Icon=other_amusement
diff --git a/menu/desktop-directories/mandriva-games-puzzles.directory.in b/menu/desktop-directories/mandriva-games-puzzles.directory.in
new file mode 100644
index 0000000..8ce0de8
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-puzzles.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Puzzles
+Icon=puzzle_section
diff --git a/menu/desktop-directories/mandriva-games-sports.directory.in b/menu/desktop-directories/mandriva-games-sports.directory.in
new file mode 100644
index 0000000..abf35c7
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-sports.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Sports
+Icon=sport_section
diff --git a/menu/desktop-directories/mandriva-games-strategy.directory.in b/menu/desktop-directories/mandriva-games-strategy.directory.in
new file mode 100644
index 0000000..e034101
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-strategy.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Strategy
+Icon=strategy_section
diff --git a/menu/desktop-directories/mandriva-games-toys.directory.in b/menu/desktop-directories/mandriva-games-toys.directory.in
new file mode 100644
index 0000000..6565d42
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games-toys.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Toys
+Icon=toys_section
diff --git a/menu/desktop-directories/mandriva-games.directory.in b/menu/desktop-directories/mandriva-games.directory.in
new file mode 100644
index 0000000..018fb82
--- /dev/null
+++ b/menu/desktop-directories/mandriva-games.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Games
+Icon=amusement_section
diff --git a/menu/desktop-directories/mandriva-graphics-more.directory.in b/menu/desktop-directories/mandriva-graphics-more.directory.in
new file mode 100644
index 0000000..404ebb8
--- /dev/null
+++ b/menu/desktop-directories/mandriva-graphics-more.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=More
+Icon=graphics_section
diff --git a/menu/desktop-directories/mandriva-graphics.directory.in b/menu/desktop-directories/mandriva-graphics.directory.in
new file mode 100644
index 0000000..5dfcef9
--- /dev/null
+++ b/menu/desktop-directories/mandriva-graphics.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Graphics
+Icon=graphics_section
diff --git a/menu/desktop-directories/mandriva-hidden.directory.in b/menu/desktop-directories/mandriva-hidden.directory.in
new file mode 100644
index 0000000..d45295c
--- /dev/null
+++ b/menu/desktop-directories/mandriva-hidden.directory.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=.hidden
+NoDisplay=true
+_Comment=Please don't remove or modify
+Icon=go
diff --git a/menu/desktop-directories/mandriva-internet-more.directory.in b/menu/desktop-directories/mandriva-internet-more.directory.in
new file mode 100644
index 0000000..d8c7289
--- /dev/null
+++ b/menu/desktop-directories/mandriva-internet-more.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=More
+Icon=other_networking
diff --git a/menu/desktop-directories/mandriva-internet.directory.in b/menu/desktop-directories/mandriva-internet.directory.in
new file mode 100644
index 0000000..e6bf925
--- /dev/null
+++ b/menu/desktop-directories/mandriva-internet.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Internet
+Icon=internet_section
diff --git a/menu/desktop-directories/mandriva-moreapplications.directory.in b/menu/desktop-directories/mandriva-moreapplications.directory.in
new file mode 100644
index 0000000..92b384f
--- /dev/null
+++ b/menu/desktop-directories/mandriva-moreapplications.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=More Applications
+Icon=more_applications_section
diff --git a/menu/desktop-directories/mandriva-networking.directory.in b/menu/desktop-directories/mandriva-networking.directory.in
new file mode 100644
index 0000000..b920097
--- /dev/null
+++ b/menu/desktop-directories/mandriva-networking.directory.in
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Networking
diff --git a/menu/desktop-directories/mandriva-office-more.directory.in b/menu/desktop-directories/mandriva-office-more.directory.in
new file mode 100644
index 0000000..5fb3eec
--- /dev/null
+++ b/menu/desktop-directories/mandriva-office-more.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=More
+Icon=office_section
diff --git a/menu/desktop-directories/mandriva-office.directory.in b/menu/desktop-directories/mandriva-office.directory.in
new file mode 100644
index 0000000..97a7706
--- /dev/null
+++ b/menu/desktop-directories/mandriva-office.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Office
+Icon=office_section
diff --git a/menu/desktop-directories/mandriva-other.directory.in b/menu/desktop-directories/mandriva-other.directory.in
new file mode 100644
index 0000000..85301a2
--- /dev/null
+++ b/menu/desktop-directories/mandriva-other.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Other
+Icon=more_applications_other_section
diff --git a/menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in b/menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in
new file mode 100644
index 0000000..7cb1564
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Artificial Intelligence
+Icon=artificial_intelligence_section
diff --git a/menu/desktop-directories/mandriva-sciences-astronomy.directory.in b/menu/desktop-directories/mandriva-sciences-astronomy.directory.in
new file mode 100644
index 0000000..a90b846
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-astronomy.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Astronomy
+Icon=astronomy_section
diff --git a/menu/desktop-directories/mandriva-sciences-biology.directory.in b/menu/desktop-directories/mandriva-sciences-biology.directory.in
new file mode 100644
index 0000000..080fe41
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-biology.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Biology
+Icon=biology_section
diff --git a/menu/desktop-directories/mandriva-sciences-chemistry.directory.in b/menu/desktop-directories/mandriva-sciences-chemistry.directory.in
new file mode 100644
index 0000000..6d26b77
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-chemistry.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Chemistry
+Icon=chemistry_section
diff --git a/menu/desktop-directories/mandriva-sciences-computerscience.directory.in b/menu/desktop-directories/mandriva-sciences-computerscience.directory.in
new file mode 100644
index 0000000..3af7cb0
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-computerscience.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Computer Science
+Icon=computer_science_section
diff --git a/menu/desktop-directories/mandriva-sciences-datavisualization.directory.in b/menu/desktop-directories/mandriva-sciences-datavisualization.directory.in
new file mode 100644
index 0000000..34474cc
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-datavisualization.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Data Visualization
+Icon=data_visualization_section
diff --git a/menu/desktop-directories/mandriva-sciences-electricity.directory.in b/menu/desktop-directories/mandriva-sciences-electricity.directory.in
new file mode 100644
index 0000000..dfbfd6f
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-electricity.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Electricity
+Icon=electricity_section
diff --git a/menu/desktop-directories/mandriva-sciences-geosciences.directory.in b/menu/desktop-directories/mandriva-sciences-geosciences.directory.in
new file mode 100644
index 0000000..1163474
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-geosciences.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Geosciences
+Icon=geosciences_section
diff --git a/menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in b/menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in
new file mode 100644
index 0000000..27c465a
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Image Processing
+Icon=image_processing_section
diff --git a/menu/desktop-directories/mandriva-sciences-mathematics.directory.in b/menu/desktop-directories/mandriva-sciences-mathematics.directory.in
new file mode 100644
index 0000000..e63c918
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-mathematics.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Mathematics
+Icon=mathematics_section
diff --git a/menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in b/menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in
new file mode 100644
index 0000000..8fb6220
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Numeric Analysis
+Icon=numerical_analysis_section
diff --git a/menu/desktop-directories/mandriva-sciences-other.directory.in b/menu/desktop-directories/mandriva-sciences-other.directory.in
new file mode 100644
index 0000000..1662a74
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-other.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Other
+Icon=other_sciences
diff --git a/menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in b/menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in
new file mode 100644
index 0000000..37e9ff5
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Parallel Computing
+Icon=parallel_computing_section
diff --git a/menu/desktop-directories/mandriva-sciences-physics.directory.in b/menu/desktop-directories/mandriva-sciences-physics.directory.in
new file mode 100644
index 0000000..c1b1df4
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-physics.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Physics
+Icon=physics_section
diff --git a/menu/desktop-directories/mandriva-sciences-robotics.directory.in b/menu/desktop-directories/mandriva-sciences-robotics.directory.in
new file mode 100644
index 0000000..225c8d5
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences-robotics.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Robotics
+Icon=robotics_section
diff --git a/menu/desktop-directories/mandriva-sciences.directory.in b/menu/desktop-directories/mandriva-sciences.directory.in
new file mode 100644
index 0000000..c662b55
--- /dev/null
+++ b/menu/desktop-directories/mandriva-sciences.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Sciences
+Icon=sciences_section
diff --git a/menu/desktop-directories/mandriva-soundvideo-more.directory.in b/menu/desktop-directories/mandriva-soundvideo-more.directory.in
new file mode 100644
index 0000000..e0f013f
--- /dev/null
+++ b/menu/desktop-directories/mandriva-soundvideo-more.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=More
+Icon=multimedia_section
diff --git a/menu/desktop-directories/mandriva-soundvideo.directory.in b/menu/desktop-directories/mandriva-soundvideo.directory.in
new file mode 100644
index 0000000..055b5cc
--- /dev/null
+++ b/menu/desktop-directories/mandriva-soundvideo.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Sound & Video
+Icon=multimedia_section
diff --git a/menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in b/menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in
new file mode 100644
index 0000000..1fa5fe7
--- /dev/null
+++ b/menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Advanced
+_Comment=Advanced Settings
+Icon=advanced-directory
diff --git a/menu/desktop-directories/mandriva-system-configuration-gnome.directory.in b/menu/desktop-directories/mandriva-system-configuration-gnome.directory.in
new file mode 100644
index 0000000..bb5ff38
--- /dev/null
+++ b/menu/desktop-directories/mandriva-system-configuration-gnome.directory.in
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=GNOME
+Icon=gnome_section
+NoDisplay=true
diff --git a/menu/desktop-directories/mandriva-system-configuration-kde.directory.in b/menu/desktop-directories/mandriva-system-configuration-kde.directory.in
new file mode 100644
index 0000000..f732c46
--- /dev/null
+++ b/menu/desktop-directories/mandriva-system-configuration-kde.directory.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=KDE
+X-KDE-BaseGroup=settings
+Icon=kde_section
+NoDisplay=true
diff --git a/menu/desktop-directories/mandriva-systemtools.directory.in b/menu/desktop-directories/mandriva-systemtools.directory.in
new file mode 100644
index 0000000..8894e31
--- /dev/null
+++ b/menu/desktop-directories/mandriva-systemtools.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=System Tools
+Icon=configuration_section
diff --git a/menu/desktop-directories/mandriva-tools-more.directory.in b/menu/desktop-directories/mandriva-tools-more.directory.in
new file mode 100644
index 0000000..6d11a29
--- /dev/null
+++ b/menu/desktop-directories/mandriva-tools-more.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=More
+Icon=system_section
diff --git a/menu/desktop-directories/mandriva-tools.directory.in b/menu/desktop-directories/mandriva-tools.directory.in
new file mode 100644
index 0000000..99112c6
--- /dev/null
+++ b/menu/desktop-directories/mandriva-tools.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Tools
+Icon=system_section
diff --git a/menu/desktop-directories/mandrivalinux.directory.in b/menu/desktop-directories/mandrivalinux.directory.in
new file mode 100644
index 0000000..926cada
--- /dev/null
+++ b/menu/desktop-directories/mandrivalinux.directory.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Directory
+Encoding=UTF-8
+_Name=Applications
+Icon=mandriva
diff --git a/menu/icons/accessibility_section.png b/menu/icons/accessibility_section.png
new file mode 100644
index 0000000..dc2de58
--- /dev/null
+++ b/menu/icons/accessibility_section.png
Binary files differ
diff --git a/menu/icons/addressbook_section.png b/menu/icons/addressbook_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/addressbook_section.png
Binary files differ
diff --git a/menu/icons/adventure_section.png b/menu/icons/adventure_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/adventure_section.png
Binary files differ
diff --git a/menu/icons/amusement_section.png b/menu/icons/amusement_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/amusement_section.png
Binary files differ
diff --git a/menu/icons/applications_section.png b/menu/icons/applications_section.png
new file mode 100644
index 0000000..6f60235
--- /dev/null
+++ b/menu/icons/applications_section.png
Binary files differ
diff --git a/menu/icons/arcade_section.png b/menu/icons/arcade_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/arcade_section.png
Binary files differ
diff --git a/menu/icons/archiving_section.png b/menu/icons/archiving_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/archiving_section.png
Binary files differ
diff --git a/menu/icons/artificial_intelligence_section.png b/menu/icons/artificial_intelligence_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/artificial_intelligence_section.png
Binary files differ
diff --git a/menu/icons/astronomy_section.png b/menu/icons/astronomy_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/astronomy_section.png
Binary files differ
diff --git a/menu/icons/backup_section.png b/menu/icons/backup_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/backup_section.png
Binary files differ
diff --git a/menu/icons/biology_section.png b/menu/icons/biology_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/biology_section.png
Binary files differ
diff --git a/menu/icons/boards_section.png b/menu/icons/boards_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/boards_section.png
Binary files differ
diff --git a/menu/icons/boot_init_section.png b/menu/icons/boot_init_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/boot_init_section.png
Binary files differ
diff --git a/menu/icons/cards_section.png b/menu/icons/cards_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/cards_section.png
Binary files differ
diff --git a/menu/icons/cd_burning_section.png b/menu/icons/cd_burning_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/cd_burning_section.png
Binary files differ
diff --git a/menu/icons/chat_section.png b/menu/icons/chat_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/chat_section.png
Binary files differ
diff --git a/menu/icons/chemistry_section.png b/menu/icons/chemistry_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/chemistry_section.png
Binary files differ
diff --git a/menu/icons/chinese_section.png b/menu/icons/chinese_section.png
new file mode 100644
index 0000000..6487bde
--- /dev/null
+++ b/menu/icons/chinese_section.png
Binary files differ
diff --git a/menu/icons/code_generator_section.png b/menu/icons/code_generator_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/code_generator_section.png
Binary files differ
diff --git a/menu/icons/communications_fax_section.png b/menu/icons/communications_fax_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/communications_fax_section.png
Binary files differ
diff --git a/menu/icons/communications_other_section.png b/menu/icons/communications_other_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/communications_other_section.png
Binary files differ
diff --git a/menu/icons/communications_phone_section.png b/menu/icons/communications_phone_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/communications_phone_section.png
Binary files differ
diff --git a/menu/icons/communications_section.png b/menu/icons/communications_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/communications_section.png
Binary files differ
diff --git a/menu/icons/compression_section.png b/menu/icons/compression_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/compression_section.png
Binary files differ
diff --git a/menu/icons/computer_science_section.png b/menu/icons/computer_science_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/computer_science_section.png
Binary files differ
diff --git a/menu/icons/configuration_section.png b/menu/icons/configuration_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/configuration_section.png
Binary files differ
diff --git a/menu/icons/data_visualization_section.png b/menu/icons/data_visualization_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/data_visualization_section.png
Binary files differ
diff --git a/menu/icons/databases_section.png b/menu/icons/databases_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/databases_section.png
Binary files differ
diff --git a/menu/icons/development_environment_section.png b/menu/icons/development_environment_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/development_environment_section.png
Binary files differ
diff --git a/menu/icons/development_section.png b/menu/icons/development_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/development_section.png
Binary files differ
diff --git a/menu/icons/development_tools_section.png b/menu/icons/development_tools_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/development_tools_section.png
Binary files differ
diff --git a/menu/icons/documentation_section.png b/menu/icons/documentation_section.png
new file mode 100644
index 0000000..1fa9044
--- /dev/null
+++ b/menu/icons/documentation_section.png
Binary files differ
diff --git a/menu/icons/editors_section.png b/menu/icons/editors_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/editors_section.png
Binary files differ
diff --git a/menu/icons/education_economy_section.png b/menu/icons/education_economy_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_economy_section.png
Binary files differ
diff --git a/menu/icons/education_geography_section.png b/menu/icons/education_geography_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_geography_section.png
Binary files differ
diff --git a/menu/icons/education_history_section.png b/menu/icons/education_history_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_history_section.png
Binary files differ
diff --git a/menu/icons/education_languages_section.png b/menu/icons/education_languages_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_languages_section.png
Binary files differ
diff --git a/menu/icons/education_literature_section.png b/menu/icons/education_literature_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_literature_section.png
Binary files differ
diff --git a/menu/icons/education_mathematics.png b/menu/icons/education_mathematics.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_mathematics.png
Binary files differ
diff --git a/menu/icons/education_other_section.png b/menu/icons/education_other_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_other_section.png
Binary files differ
diff --git a/menu/icons/education_sciences.png b/menu/icons/education_sciences.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_sciences.png
Binary files differ
diff --git a/menu/icons/education_section.png b/menu/icons/education_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_section.png
Binary files differ
diff --git a/menu/icons/education_sport_section.png b/menu/icons/education_sport_section.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_sport_section.png
Binary files differ
diff --git a/menu/icons/education_tool.png b/menu/icons/education_tool.png
new file mode 100644
index 0000000..1fbab40
--- /dev/null
+++ b/menu/icons/education_tool.png
Binary files differ
diff --git a/menu/icons/electricity_section.png b/menu/icons/electricity_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/electricity_section.png
Binary files differ
diff --git a/menu/icons/emulators_section.png b/menu/icons/emulators_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/emulators_section.png
Binary files differ
diff --git a/menu/icons/file_tools_section.png b/menu/icons/file_tools_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/file_tools_section.png
Binary files differ
diff --git a/menu/icons/file_transfer_section.png b/menu/icons/file_transfer_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/file_transfer_section.png
Binary files differ
diff --git a/menu/icons/finances_section.png b/menu/icons/finances_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/finances_section.png
Binary files differ
diff --git a/menu/icons/geosciences_section.png b/menu/icons/geosciences_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/geosciences_section.png
Binary files differ
diff --git a/menu/icons/gnome_section.png b/menu/icons/gnome_section.png
new file mode 100644
index 0000000..f2f9254
--- /dev/null
+++ b/menu/icons/gnome_section.png
Binary files differ
diff --git a/menu/icons/graphics_section.png b/menu/icons/graphics_section.png
new file mode 100644
index 0000000..cbab725
--- /dev/null
+++ b/menu/icons/graphics_section.png
Binary files differ
diff --git a/menu/icons/graphs_section.png b/menu/icons/graphs_section.png
new file mode 100644
index 0000000..cbab725
--- /dev/null
+++ b/menu/icons/graphs_section.png
Binary files differ
diff --git a/menu/icons/hardware_configuration_section.png b/menu/icons/hardware_configuration_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/hardware_configuration_section.png
Binary files differ
diff --git a/menu/icons/hardware_section.png b/menu/icons/hardware_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/hardware_section.png
Binary files differ
diff --git a/menu/icons/hicolor/128x128/apps/register-mga.png b/menu/icons/hicolor/128x128/apps/register-mga.png
new file mode 100644
index 0000000..c6ddadb
--- /dev/null
+++ b/menu/icons/hicolor/128x128/apps/register-mga.png
Binary files differ
diff --git a/menu/icons/hicolor/16x16/apps/register-mga.png b/menu/icons/hicolor/16x16/apps/register-mga.png
new file mode 100644
index 0000000..5f47ced
--- /dev/null
+++ b/menu/icons/hicolor/16x16/apps/register-mga.png
Binary files differ
diff --git a/menu/icons/hicolor/22x22/apps/register-mga.png b/menu/icons/hicolor/22x22/apps/register-mga.png
new file mode 100644
index 0000000..e8e90f4
--- /dev/null
+++ b/menu/icons/hicolor/22x22/apps/register-mga.png
Binary files differ
diff --git a/menu/icons/hicolor/32x32/apps/register-mga.png b/menu/icons/hicolor/32x32/apps/register-mga.png
new file mode 100644
index 0000000..6769fda
--- /dev/null
+++ b/menu/icons/hicolor/32x32/apps/register-mga.png
Binary files differ
diff --git a/menu/icons/hicolor/48x48/apps/register-mga.png b/menu/icons/hicolor/48x48/apps/register-mga.png
new file mode 100644
index 0000000..ac9c121
--- /dev/null
+++ b/menu/icons/hicolor/48x48/apps/register-mga.png
Binary files differ
diff --git a/menu/icons/hicolor/64x64/apps/register-mga.png b/menu/icons/hicolor/64x64/apps/register-mga.png
new file mode 100644
index 0000000..9bdea3b
--- /dev/null
+++ b/menu/icons/hicolor/64x64/apps/register-mga.png
Binary files differ
diff --git a/menu/icons/image_processing_section.png b/menu/icons/image_processing_section.png
new file mode 100644
index 0000000..cbab725
--- /dev/null
+++ b/menu/icons/image_processing_section.png
Binary files differ
diff --git a/menu/icons/instant_messaging_section.png b/menu/icons/instant_messaging_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/instant_messaging_section.png
Binary files differ
diff --git a/menu/icons/internet_section.png b/menu/icons/internet_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/internet_section.png
Binary files differ
diff --git a/menu/icons/interpreters_section.png b/menu/icons/interpreters_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/interpreters_section.png
Binary files differ
diff --git a/menu/icons/irc_section.png b/menu/icons/irc_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/irc_section.png
Binary files differ
diff --git a/menu/icons/kde_section.png b/menu/icons/kde_section.png
new file mode 100644
index 0000000..ff9d36f
--- /dev/null
+++ b/menu/icons/kde_section.png
Binary files differ
diff --git a/menu/icons/large/accessibility_section.png b/menu/icons/large/accessibility_section.png
new file mode 100644
index 0000000..a439318
--- /dev/null
+++ b/menu/icons/large/accessibility_section.png
Binary files differ
diff --git a/menu/icons/large/addressbook_section.png b/menu/icons/large/addressbook_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/addressbook_section.png
Binary files differ
diff --git a/menu/icons/large/adventure_section.png b/menu/icons/large/adventure_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/adventure_section.png
Binary files differ
diff --git a/menu/icons/large/amusement_section.png b/menu/icons/large/amusement_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/amusement_section.png
Binary files differ
diff --git a/menu/icons/large/applications_section.png b/menu/icons/large/applications_section.png
new file mode 100644
index 0000000..9e0e967
--- /dev/null
+++ b/menu/icons/large/applications_section.png
Binary files differ
diff --git a/menu/icons/large/arcade_section.png b/menu/icons/large/arcade_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/arcade_section.png
Binary files differ
diff --git a/menu/icons/large/archiving_section.png b/menu/icons/large/archiving_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/archiving_section.png
Binary files differ
diff --git a/menu/icons/large/artificial_intelligence_section.png b/menu/icons/large/artificial_intelligence_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/artificial_intelligence_section.png
Binary files differ
diff --git a/menu/icons/large/astronomy_section.png b/menu/icons/large/astronomy_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/astronomy_section.png
Binary files differ
diff --git a/menu/icons/large/backup_section.png b/menu/icons/large/backup_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/backup_section.png
Binary files differ
diff --git a/menu/icons/large/biology_section.png b/menu/icons/large/biology_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/biology_section.png
Binary files differ
diff --git a/menu/icons/large/boards_section.png b/menu/icons/large/boards_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/boards_section.png
Binary files differ
diff --git a/menu/icons/large/boot_init_section.png b/menu/icons/large/boot_init_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/boot_init_section.png
Binary files differ
diff --git a/menu/icons/large/cards_section.png b/menu/icons/large/cards_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/cards_section.png
Binary files differ
diff --git a/menu/icons/large/cd_burning_section.png b/menu/icons/large/cd_burning_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/cd_burning_section.png
Binary files differ
diff --git a/menu/icons/large/chat_section.png b/menu/icons/large/chat_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/chat_section.png
Binary files differ
diff --git a/menu/icons/large/chemistry_section.png b/menu/icons/large/chemistry_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/chemistry_section.png
Binary files differ
diff --git a/menu/icons/large/chinese_section.png b/menu/icons/large/chinese_section.png
new file mode 100644
index 0000000..58bc82b
--- /dev/null
+++ b/menu/icons/large/chinese_section.png
Binary files differ
diff --git a/menu/icons/large/code_generator_section.png b/menu/icons/large/code_generator_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/code_generator_section.png
Binary files differ
diff --git a/menu/icons/large/communications_fax_section.png b/menu/icons/large/communications_fax_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/communications_fax_section.png
Binary files differ
diff --git a/menu/icons/large/communications_other_section.png b/menu/icons/large/communications_other_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/communications_other_section.png
Binary files differ
diff --git a/menu/icons/large/communications_phone_section.png b/menu/icons/large/communications_phone_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/communications_phone_section.png
Binary files differ
diff --git a/menu/icons/large/communications_section.png b/menu/icons/large/communications_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/communications_section.png
Binary files differ
diff --git a/menu/icons/large/compression_section.png b/menu/icons/large/compression_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/compression_section.png
Binary files differ
diff --git a/menu/icons/large/computer_science_section.png b/menu/icons/large/computer_science_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/computer_science_section.png
Binary files differ
diff --git a/menu/icons/large/configuration_section.png b/menu/icons/large/configuration_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/configuration_section.png
Binary files differ
diff --git a/menu/icons/large/data_visualization_section.png b/menu/icons/large/data_visualization_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/data_visualization_section.png
Binary files differ
diff --git a/menu/icons/large/databases_section.png b/menu/icons/large/databases_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/databases_section.png
Binary files differ
diff --git a/menu/icons/large/development_environment_section.png b/menu/icons/large/development_environment_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/development_environment_section.png
Binary files differ
diff --git a/menu/icons/large/development_section.png b/menu/icons/large/development_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/development_section.png
Binary files differ
diff --git a/menu/icons/large/development_tools_section.png b/menu/icons/large/development_tools_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/development_tools_section.png
Binary files differ
diff --git a/menu/icons/large/documentation_section.png b/menu/icons/large/documentation_section.png
new file mode 100644
index 0000000..e359629
--- /dev/null
+++ b/menu/icons/large/documentation_section.png
Binary files differ
diff --git a/menu/icons/large/editors_section.png b/menu/icons/large/editors_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/editors_section.png
Binary files differ
diff --git a/menu/icons/large/education_economy_section.png b/menu/icons/large/education_economy_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_economy_section.png
Binary files differ
diff --git a/menu/icons/large/education_geography_section.png b/menu/icons/large/education_geography_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_geography_section.png
Binary files differ
diff --git a/menu/icons/large/education_history_section.png b/menu/icons/large/education_history_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_history_section.png
Binary files differ
diff --git a/menu/icons/large/education_languages_section.png b/menu/icons/large/education_languages_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_languages_section.png
Binary files differ
diff --git a/menu/icons/large/education_literature_section.png b/menu/icons/large/education_literature_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_literature_section.png
Binary files differ
diff --git a/menu/icons/large/education_mathematics.png b/menu/icons/large/education_mathematics.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_mathematics.png
Binary files differ
diff --git a/menu/icons/large/education_other_section.png b/menu/icons/large/education_other_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_other_section.png
Binary files differ
diff --git a/menu/icons/large/education_sciences.png b/menu/icons/large/education_sciences.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_sciences.png
Binary files differ
diff --git a/menu/icons/large/education_section.png b/menu/icons/large/education_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_section.png
Binary files differ
diff --git a/menu/icons/large/education_sport_section.png b/menu/icons/large/education_sport_section.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_sport_section.png
Binary files differ
diff --git a/menu/icons/large/education_tool.png b/menu/icons/large/education_tool.png
new file mode 100644
index 0000000..aa2a379
--- /dev/null
+++ b/menu/icons/large/education_tool.png
Binary files differ
diff --git a/menu/icons/large/electricity_section.png b/menu/icons/large/electricity_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/electricity_section.png
Binary files differ
diff --git a/menu/icons/large/emulators_section.png b/menu/icons/large/emulators_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/emulators_section.png
Binary files differ
diff --git a/menu/icons/large/file_tools_section.png b/menu/icons/large/file_tools_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/file_tools_section.png
Binary files differ
diff --git a/menu/icons/large/file_transfer_section.png b/menu/icons/large/file_transfer_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/file_transfer_section.png
Binary files differ
diff --git a/menu/icons/large/finances_section.png b/menu/icons/large/finances_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/finances_section.png
Binary files differ
diff --git a/menu/icons/large/geosciences_section.png b/menu/icons/large/geosciences_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/geosciences_section.png
Binary files differ
diff --git a/menu/icons/large/gnome_section.png b/menu/icons/large/gnome_section.png
new file mode 100644
index 0000000..b23e3ea
--- /dev/null
+++ b/menu/icons/large/gnome_section.png
Binary files differ
diff --git a/menu/icons/large/graphics_section.png b/menu/icons/large/graphics_section.png
new file mode 100644
index 0000000..5163805
--- /dev/null
+++ b/menu/icons/large/graphics_section.png
Binary files differ
diff --git a/menu/icons/large/graphs_section.png b/menu/icons/large/graphs_section.png
new file mode 100644
index 0000000..5163805
--- /dev/null
+++ b/menu/icons/large/graphs_section.png
Binary files differ
diff --git a/menu/icons/large/hardware_configuration_section.png b/menu/icons/large/hardware_configuration_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/hardware_configuration_section.png
Binary files differ
diff --git a/menu/icons/large/hardware_section.png b/menu/icons/large/hardware_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/hardware_section.png
Binary files differ
diff --git a/menu/icons/large/image_processing_section.png b/menu/icons/large/image_processing_section.png
new file mode 100644
index 0000000..5163805
--- /dev/null
+++ b/menu/icons/large/image_processing_section.png
Binary files differ
diff --git a/menu/icons/large/instant_messaging_section.png b/menu/icons/large/instant_messaging_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/instant_messaging_section.png
Binary files differ
diff --git a/menu/icons/large/internet_section.png b/menu/icons/large/internet_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/internet_section.png
Binary files differ
diff --git a/menu/icons/large/interpreters_section.png b/menu/icons/large/interpreters_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/interpreters_section.png
Binary files differ
diff --git a/menu/icons/large/irc_section.png b/menu/icons/large/irc_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/irc_section.png
Binary files differ
diff --git a/menu/icons/large/kde_section.png b/menu/icons/large/kde_section.png
new file mode 100644
index 0000000..e5b046a
--- /dev/null
+++ b/menu/icons/large/kde_section.png
Binary files differ
diff --git a/menu/icons/large/mageia.png b/menu/icons/large/mageia.png
new file mode 100644
index 0000000..ac9c121
--- /dev/null
+++ b/menu/icons/large/mageia.png
Binary files differ
diff --git a/menu/icons/large/mail_section.png b/menu/icons/large/mail_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/mail_section.png
Binary files differ
diff --git a/menu/icons/large/mathematics_section.png b/menu/icons/large/mathematics_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/mathematics_section.png
Binary files differ
diff --git a/menu/icons/large/monitoring_section.png b/menu/icons/large/monitoring_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/monitoring_section.png
Binary files differ
diff --git a/menu/icons/large/more_applications_other_section.png b/menu/icons/large/more_applications_other_section.png
new file mode 100644
index 0000000..9e0e967
--- /dev/null
+++ b/menu/icons/large/more_applications_other_section.png
Binary files differ
diff --git a/menu/icons/large/more_applications_section.png b/menu/icons/large/more_applications_section.png
new file mode 100644
index 0000000..9e0e967
--- /dev/null
+++ b/menu/icons/large/more_applications_section.png
Binary files differ
diff --git a/menu/icons/large/multimedia_section.png b/menu/icons/large/multimedia_section.png
new file mode 100644
index 0000000..5163805
--- /dev/null
+++ b/menu/icons/large/multimedia_section.png
Binary files differ
diff --git a/menu/icons/large/networking_configuration_section.png b/menu/icons/large/networking_configuration_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/networking_configuration_section.png
Binary files differ
diff --git a/menu/icons/large/networking_section.png b/menu/icons/large/networking_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/networking_section.png
Binary files differ
diff --git a/menu/icons/large/networking_www_section.png b/menu/icons/large/networking_www_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/networking_www_section.png
Binary files differ
diff --git a/menu/icons/large/news_section.png b/menu/icons/large/news_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/news_section.png
Binary files differ
diff --git a/menu/icons/large/numerical_analysis_section.png b/menu/icons/large/numerical_analysis_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/numerical_analysis_section.png
Binary files differ
diff --git a/menu/icons/large/office_accessories_section.png b/menu/icons/large/office_accessories_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/office_accessories_section.png
Binary files differ
diff --git a/menu/icons/large/office_drawing_section.png b/menu/icons/large/office_drawing_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/office_drawing_section.png
Binary files differ
diff --git a/menu/icons/large/office_section.png b/menu/icons/large/office_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/office_section.png
Binary files differ
diff --git a/menu/icons/large/other_amusement.png b/menu/icons/large/other_amusement.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/other_amusement.png
Binary files differ
diff --git a/menu/icons/large/other_archiving.png b/menu/icons/large/other_archiving.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/other_archiving.png
Binary files differ
diff --git a/menu/icons/large/other_configuration.png b/menu/icons/large/other_configuration.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/other_configuration.png
Binary files differ
diff --git a/menu/icons/large/other_networking.png b/menu/icons/large/other_networking.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/other_networking.png
Binary files differ
diff --git a/menu/icons/large/other_sciences.png b/menu/icons/large/other_sciences.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/other_sciences.png
Binary files differ
diff --git a/menu/icons/large/packaging_section.png b/menu/icons/large/packaging_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/packaging_section.png
Binary files differ
diff --git a/menu/icons/large/parallel_computing_section.png b/menu/icons/large/parallel_computing_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/parallel_computing_section.png
Binary files differ
diff --git a/menu/icons/large/pda_section.png b/menu/icons/large/pda_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/pda_section.png
Binary files differ
diff --git a/menu/icons/large/physics_section.png b/menu/icons/large/physics_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/physics_section.png
Binary files differ
diff --git a/menu/icons/large/presentation_section.png b/menu/icons/large/presentation_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/presentation_section.png
Binary files differ
diff --git a/menu/icons/large/printing_section.png b/menu/icons/large/printing_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/printing_section.png
Binary files differ
diff --git a/menu/icons/large/publishing_section.png b/menu/icons/large/publishing_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/publishing_section.png
Binary files differ
diff --git a/menu/icons/large/puzzle_section.png b/menu/icons/large/puzzle_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/puzzle_section.png
Binary files differ
diff --git a/menu/icons/large/remote_access_section.png b/menu/icons/large/remote_access_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/remote_access_section.png
Binary files differ
diff --git a/menu/icons/large/robotics_section.png b/menu/icons/large/robotics_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/robotics_section.png
Binary files differ
diff --git a/menu/icons/large/sciences_section.png b/menu/icons/large/sciences_section.png
new file mode 100644
index 0000000..a8a83ae
--- /dev/null
+++ b/menu/icons/large/sciences_section.png
Binary files differ
diff --git a/menu/icons/large/shells_section.png b/menu/icons/large/shells_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/shells_section.png
Binary files differ
diff --git a/menu/icons/large/sound_section.png b/menu/icons/large/sound_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/sound_section.png
Binary files differ
diff --git a/menu/icons/large/sport_section.png b/menu/icons/large/sport_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/sport_section.png
Binary files differ
diff --git a/menu/icons/large/spreadsheet_section.png b/menu/icons/large/spreadsheet_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/spreadsheet_section.png
Binary files differ
diff --git a/menu/icons/large/strategy_section.png b/menu/icons/large/strategy_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/strategy_section.png
Binary files differ
diff --git a/menu/icons/large/system_other_section.png b/menu/icons/large/system_other_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/system_other_section.png
Binary files differ
diff --git a/menu/icons/large/system_section.png b/menu/icons/large/system_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/system_section.png
Binary files differ
diff --git a/menu/icons/large/taskmanagement_section.png b/menu/icons/large/taskmanagement_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/taskmanagement_section.png
Binary files differ
diff --git a/menu/icons/large/terminals_section.png b/menu/icons/large/terminals_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/terminals_section.png
Binary files differ
diff --git a/menu/icons/large/text_tools_section.png b/menu/icons/large/text_tools_section.png
new file mode 100644
index 0000000..3c7271e
--- /dev/null
+++ b/menu/icons/large/text_tools_section.png
Binary files differ
diff --git a/menu/icons/large/timemanagement_section.png b/menu/icons/large/timemanagement_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/timemanagement_section.png
Binary files differ
diff --git a/menu/icons/large/toys_section.png b/menu/icons/large/toys_section.png
new file mode 100644
index 0000000..df76dc1
--- /dev/null
+++ b/menu/icons/large/toys_section.png
Binary files differ
diff --git a/menu/icons/large/video_conferences_section.png b/menu/icons/large/video_conferences_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/video_conferences_section.png
Binary files differ
diff --git a/menu/icons/large/video_section.png b/menu/icons/large/video_section.png
new file mode 100644
index 0000000..5163805
--- /dev/null
+++ b/menu/icons/large/video_section.png
Binary files differ
diff --git a/menu/icons/large/web_browser_section.png b/menu/icons/large/web_browser_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/web_browser_section.png
Binary files differ
diff --git a/menu/icons/large/web_editors_section.png b/menu/icons/large/web_editors_section.png
new file mode 100644
index 0000000..5b02246
--- /dev/null
+++ b/menu/icons/large/web_editors_section.png
Binary files differ
diff --git a/menu/icons/large/windowmanager_section.png b/menu/icons/large/windowmanager_section.png
new file mode 100644
index 0000000..a5f36cd
--- /dev/null
+++ b/menu/icons/large/windowmanager_section.png
Binary files differ
diff --git a/menu/icons/large/wordprocessor_section.png b/menu/icons/large/wordprocessor_section.png
new file mode 100644
index 0000000..a27631b
--- /dev/null
+++ b/menu/icons/large/wordprocessor_section.png
Binary files differ
diff --git a/menu/icons/mageia.png b/menu/icons/mageia.png
new file mode 100644
index 0000000..6769fda
--- /dev/null
+++ b/menu/icons/mageia.png
Binary files differ
diff --git a/menu/icons/mail_section.png b/menu/icons/mail_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/mail_section.png
Binary files differ
diff --git a/menu/icons/mathematics_section.png b/menu/icons/mathematics_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/mathematics_section.png
Binary files differ
diff --git a/menu/icons/mini/accessibility_section.png b/menu/icons/mini/accessibility_section.png
new file mode 100644
index 0000000..e03dea0
--- /dev/null
+++ b/menu/icons/mini/accessibility_section.png
Binary files differ
diff --git a/menu/icons/mini/addressbook_section.png b/menu/icons/mini/addressbook_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/addressbook_section.png
Binary files differ
diff --git a/menu/icons/mini/adventure_section.png b/menu/icons/mini/adventure_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/adventure_section.png
Binary files differ
diff --git a/menu/icons/mini/amusement_section.png b/menu/icons/mini/amusement_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/amusement_section.png
Binary files differ
diff --git a/menu/icons/mini/applications_section.png b/menu/icons/mini/applications_section.png
new file mode 100644
index 0000000..55ac049
--- /dev/null
+++ b/menu/icons/mini/applications_section.png
Binary files differ
diff --git a/menu/icons/mini/arcade_section.png b/menu/icons/mini/arcade_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/arcade_section.png
Binary files differ
diff --git a/menu/icons/mini/archiving_section.png b/menu/icons/mini/archiving_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/archiving_section.png
Binary files differ
diff --git a/menu/icons/mini/artificial_intelligence_section.png b/menu/icons/mini/artificial_intelligence_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/artificial_intelligence_section.png
Binary files differ
diff --git a/menu/icons/mini/astronomy_section.png b/menu/icons/mini/astronomy_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/astronomy_section.png
Binary files differ
diff --git a/menu/icons/mini/backup_section.png b/menu/icons/mini/backup_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/backup_section.png
Binary files differ
diff --git a/menu/icons/mini/biology_section.png b/menu/icons/mini/biology_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/biology_section.png
Binary files differ
diff --git a/menu/icons/mini/boards_section.png b/menu/icons/mini/boards_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/boards_section.png
Binary files differ
diff --git a/menu/icons/mini/boot_init_section.png b/menu/icons/mini/boot_init_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/boot_init_section.png
Binary files differ
diff --git a/menu/icons/mini/cards_section.png b/menu/icons/mini/cards_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/cards_section.png
Binary files differ
diff --git a/menu/icons/mini/cd_burning_section.png b/menu/icons/mini/cd_burning_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/cd_burning_section.png
Binary files differ
diff --git a/menu/icons/mini/chat_section.png b/menu/icons/mini/chat_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/chat_section.png
Binary files differ
diff --git a/menu/icons/mini/chemistry_section.png b/menu/icons/mini/chemistry_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/chemistry_section.png
Binary files differ
diff --git a/menu/icons/mini/chinese_section.png b/menu/icons/mini/chinese_section.png
new file mode 100644
index 0000000..7df21e6
--- /dev/null
+++ b/menu/icons/mini/chinese_section.png
Binary files differ
diff --git a/menu/icons/mini/code_generator_section.png b/menu/icons/mini/code_generator_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/code_generator_section.png
Binary files differ
diff --git a/menu/icons/mini/communications_fax_section.png b/menu/icons/mini/communications_fax_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/communications_fax_section.png
Binary files differ
diff --git a/menu/icons/mini/communications_other_section.png b/menu/icons/mini/communications_other_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/communications_other_section.png
Binary files differ
diff --git a/menu/icons/mini/communications_phone_section.png b/menu/icons/mini/communications_phone_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/communications_phone_section.png
Binary files differ
diff --git a/menu/icons/mini/communications_section.png b/menu/icons/mini/communications_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/communications_section.png
Binary files differ
diff --git a/menu/icons/mini/compression_section.png b/menu/icons/mini/compression_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/compression_section.png
Binary files differ
diff --git a/menu/icons/mini/computer_science_section.png b/menu/icons/mini/computer_science_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/computer_science_section.png
Binary files differ
diff --git a/menu/icons/mini/configuration_section.png b/menu/icons/mini/configuration_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/configuration_section.png
Binary files differ
diff --git a/menu/icons/mini/data_visualization_section.png b/menu/icons/mini/data_visualization_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/data_visualization_section.png
Binary files differ
diff --git a/menu/icons/mini/databases_section.png b/menu/icons/mini/databases_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/databases_section.png
Binary files differ
diff --git a/menu/icons/mini/development_environment_section.png b/menu/icons/mini/development_environment_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/development_environment_section.png
Binary files differ
diff --git a/menu/icons/mini/development_section.png b/menu/icons/mini/development_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/development_section.png
Binary files differ
diff --git a/menu/icons/mini/development_tools_section.png b/menu/icons/mini/development_tools_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/development_tools_section.png
Binary files differ
diff --git a/menu/icons/mini/documentation_section.png b/menu/icons/mini/documentation_section.png
new file mode 100644
index 0000000..a3bac8c
--- /dev/null
+++ b/menu/icons/mini/documentation_section.png
Binary files differ
diff --git a/menu/icons/mini/editors_section.png b/menu/icons/mini/editors_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/editors_section.png
Binary files differ
diff --git a/menu/icons/mini/education_economy_section.png b/menu/icons/mini/education_economy_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_economy_section.png
Binary files differ
diff --git a/menu/icons/mini/education_geography_section.png b/menu/icons/mini/education_geography_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_geography_section.png
Binary files differ
diff --git a/menu/icons/mini/education_history_section.png b/menu/icons/mini/education_history_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_history_section.png
Binary files differ
diff --git a/menu/icons/mini/education_languages_section.png b/menu/icons/mini/education_languages_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_languages_section.png
Binary files differ
diff --git a/menu/icons/mini/education_literature_section.png b/menu/icons/mini/education_literature_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_literature_section.png
Binary files differ
diff --git a/menu/icons/mini/education_mathematics.png b/menu/icons/mini/education_mathematics.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_mathematics.png
Binary files differ
diff --git a/menu/icons/mini/education_other_section.png b/menu/icons/mini/education_other_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_other_section.png
Binary files differ
diff --git a/menu/icons/mini/education_sciences.png b/menu/icons/mini/education_sciences.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_sciences.png
Binary files differ
diff --git a/menu/icons/mini/education_section.png b/menu/icons/mini/education_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_section.png
Binary files differ
diff --git a/menu/icons/mini/education_sport_section.png b/menu/icons/mini/education_sport_section.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_sport_section.png
Binary files differ
diff --git a/menu/icons/mini/education_tool.png b/menu/icons/mini/education_tool.png
new file mode 100644
index 0000000..cd55d1c
--- /dev/null
+++ b/menu/icons/mini/education_tool.png
Binary files differ
diff --git a/menu/icons/mini/electricity_section.png b/menu/icons/mini/electricity_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/electricity_section.png
Binary files differ
diff --git a/menu/icons/mini/emulators_section.png b/menu/icons/mini/emulators_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/emulators_section.png
Binary files differ
diff --git a/menu/icons/mini/file_tools_section.png b/menu/icons/mini/file_tools_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/file_tools_section.png
Binary files differ
diff --git a/menu/icons/mini/file_transfer_section.png b/menu/icons/mini/file_transfer_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/file_transfer_section.png
Binary files differ
diff --git a/menu/icons/mini/finances_section.png b/menu/icons/mini/finances_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/finances_section.png
Binary files differ
diff --git a/menu/icons/mini/geosciences_section.png b/menu/icons/mini/geosciences_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/geosciences_section.png
Binary files differ
diff --git a/menu/icons/mini/gnome_section.png b/menu/icons/mini/gnome_section.png
new file mode 100644
index 0000000..7ac4019
--- /dev/null
+++ b/menu/icons/mini/gnome_section.png
Binary files differ
diff --git a/menu/icons/mini/graphics_section.png b/menu/icons/mini/graphics_section.png
new file mode 100644
index 0000000..76f4167
--- /dev/null
+++ b/menu/icons/mini/graphics_section.png
Binary files differ
diff --git a/menu/icons/mini/graphs_section.png b/menu/icons/mini/graphs_section.png
new file mode 100644
index 0000000..76f4167
--- /dev/null
+++ b/menu/icons/mini/graphs_section.png
Binary files differ
diff --git a/menu/icons/mini/hardware_configuration_section.png b/menu/icons/mini/hardware_configuration_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/hardware_configuration_section.png
Binary files differ
diff --git a/menu/icons/mini/hardware_section.png b/menu/icons/mini/hardware_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/hardware_section.png
Binary files differ
diff --git a/menu/icons/mini/image_processing_section.png b/menu/icons/mini/image_processing_section.png
new file mode 100644
index 0000000..76f4167
--- /dev/null
+++ b/menu/icons/mini/image_processing_section.png
Binary files differ
diff --git a/menu/icons/mini/instant_messaging_section.png b/menu/icons/mini/instant_messaging_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/instant_messaging_section.png
Binary files differ
diff --git a/menu/icons/mini/internet_section.png b/menu/icons/mini/internet_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/internet_section.png
Binary files differ
diff --git a/menu/icons/mini/interpreters_section.png b/menu/icons/mini/interpreters_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/interpreters_section.png
Binary files differ
diff --git a/menu/icons/mini/irc_section.png b/menu/icons/mini/irc_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/irc_section.png
Binary files differ
diff --git a/menu/icons/mini/kde_section.png b/menu/icons/mini/kde_section.png
new file mode 100644
index 0000000..ea341e7
--- /dev/null
+++ b/menu/icons/mini/kde_section.png
Binary files differ
diff --git a/menu/icons/mini/mageia.png b/menu/icons/mini/mageia.png
new file mode 100644
index 0000000..5f47ced
--- /dev/null
+++ b/menu/icons/mini/mageia.png
Binary files differ
diff --git a/menu/icons/mini/mail_section.png b/menu/icons/mini/mail_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/mail_section.png
Binary files differ
diff --git a/menu/icons/mini/mathematics_section.png b/menu/icons/mini/mathematics_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/mathematics_section.png
Binary files differ
diff --git a/menu/icons/mini/monitoring_section.png b/menu/icons/mini/monitoring_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/monitoring_section.png
Binary files differ
diff --git a/menu/icons/mini/more_applications_other_section.png b/menu/icons/mini/more_applications_other_section.png
new file mode 100644
index 0000000..55ac049
--- /dev/null
+++ b/menu/icons/mini/more_applications_other_section.png
Binary files differ
diff --git a/menu/icons/mini/more_applications_section.png b/menu/icons/mini/more_applications_section.png
new file mode 100644
index 0000000..55ac049
--- /dev/null
+++ b/menu/icons/mini/more_applications_section.png
Binary files differ
diff --git a/menu/icons/mini/multimedia_section.png b/menu/icons/mini/multimedia_section.png
new file mode 100644
index 0000000..76f4167
--- /dev/null
+++ b/menu/icons/mini/multimedia_section.png
Binary files differ
diff --git a/menu/icons/mini/networking_configuration_section.png b/menu/icons/mini/networking_configuration_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/networking_configuration_section.png
Binary files differ
diff --git a/menu/icons/mini/networking_section.png b/menu/icons/mini/networking_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/networking_section.png
Binary files differ
diff --git a/menu/icons/mini/networking_www_section.png b/menu/icons/mini/networking_www_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/networking_www_section.png
Binary files differ
diff --git a/menu/icons/mini/news_section.png b/menu/icons/mini/news_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/news_section.png
Binary files differ
diff --git a/menu/icons/mini/numerical_analysis_section.png b/menu/icons/mini/numerical_analysis_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/numerical_analysis_section.png
Binary files differ
diff --git a/menu/icons/mini/office_accessories_section.png b/menu/icons/mini/office_accessories_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/office_accessories_section.png
Binary files differ
diff --git a/menu/icons/mini/office_drawing_section.png b/menu/icons/mini/office_drawing_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/office_drawing_section.png
Binary files differ
diff --git a/menu/icons/mini/office_section.png b/menu/icons/mini/office_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/office_section.png
Binary files differ
diff --git a/menu/icons/mini/other_amusement.png b/menu/icons/mini/other_amusement.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/other_amusement.png
Binary files differ
diff --git a/menu/icons/mini/other_archiving.png b/menu/icons/mini/other_archiving.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/other_archiving.png
Binary files differ
diff --git a/menu/icons/mini/other_configuration.png b/menu/icons/mini/other_configuration.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/other_configuration.png
Binary files differ
diff --git a/menu/icons/mini/other_networking.png b/menu/icons/mini/other_networking.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/other_networking.png
Binary files differ
diff --git a/menu/icons/mini/other_sciences.png b/menu/icons/mini/other_sciences.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/other_sciences.png
Binary files differ
diff --git a/menu/icons/mini/packaging_section.png b/menu/icons/mini/packaging_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/packaging_section.png
Binary files differ
diff --git a/menu/icons/mini/parallel_computing_section.png b/menu/icons/mini/parallel_computing_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/parallel_computing_section.png
Binary files differ
diff --git a/menu/icons/mini/pda_section.png b/menu/icons/mini/pda_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/pda_section.png
Binary files differ
diff --git a/menu/icons/mini/physics_section.png b/menu/icons/mini/physics_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/physics_section.png
Binary files differ
diff --git a/menu/icons/mini/presentation_section.png b/menu/icons/mini/presentation_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/presentation_section.png
Binary files differ
diff --git a/menu/icons/mini/printing_section.png b/menu/icons/mini/printing_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/printing_section.png
Binary files differ
diff --git a/menu/icons/mini/publishing_section.png b/menu/icons/mini/publishing_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/publishing_section.png
Binary files differ
diff --git a/menu/icons/mini/puzzle_section.png b/menu/icons/mini/puzzle_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/puzzle_section.png
Binary files differ
diff --git a/menu/icons/mini/remote_access_section.png b/menu/icons/mini/remote_access_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/remote_access_section.png
Binary files differ
diff --git a/menu/icons/mini/robotics_section.png b/menu/icons/mini/robotics_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/robotics_section.png
Binary files differ
diff --git a/menu/icons/mini/sciences_section.png b/menu/icons/mini/sciences_section.png
new file mode 100644
index 0000000..c5227df
--- /dev/null
+++ b/menu/icons/mini/sciences_section.png
Binary files differ
diff --git a/menu/icons/mini/shells_section.png b/menu/icons/mini/shells_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/shells_section.png
Binary files differ
diff --git a/menu/icons/mini/sound_section.png b/menu/icons/mini/sound_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/sound_section.png
Binary files differ
diff --git a/menu/icons/mini/sport_section.png b/menu/icons/mini/sport_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/sport_section.png
Binary files differ
diff --git a/menu/icons/mini/spreadsheet_section.png b/menu/icons/mini/spreadsheet_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/spreadsheet_section.png
Binary files differ
diff --git a/menu/icons/mini/strategy_section.png b/menu/icons/mini/strategy_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/strategy_section.png
Binary files differ
diff --git a/menu/icons/mini/system_other_section.png b/menu/icons/mini/system_other_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/system_other_section.png
Binary files differ
diff --git a/menu/icons/mini/system_section.png b/menu/icons/mini/system_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/system_section.png
Binary files differ
diff --git a/menu/icons/mini/taskmanagement_section.png b/menu/icons/mini/taskmanagement_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/taskmanagement_section.png
Binary files differ
diff --git a/menu/icons/mini/terminals_section.png b/menu/icons/mini/terminals_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/terminals_section.png
Binary files differ
diff --git a/menu/icons/mini/text_tools_section.png b/menu/icons/mini/text_tools_section.png
new file mode 100644
index 0000000..5e50cde
--- /dev/null
+++ b/menu/icons/mini/text_tools_section.png
Binary files differ
diff --git a/menu/icons/mini/timemanagement_section.png b/menu/icons/mini/timemanagement_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/timemanagement_section.png
Binary files differ
diff --git a/menu/icons/mini/toys_section.png b/menu/icons/mini/toys_section.png
new file mode 100644
index 0000000..1cdfb38
--- /dev/null
+++ b/menu/icons/mini/toys_section.png
Binary files differ
diff --git a/menu/icons/mini/video_conferences_section.png b/menu/icons/mini/video_conferences_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/video_conferences_section.png
Binary files differ
diff --git a/menu/icons/mini/video_section.png b/menu/icons/mini/video_section.png
new file mode 100644
index 0000000..76f4167
--- /dev/null
+++ b/menu/icons/mini/video_section.png
Binary files differ
diff --git a/menu/icons/mini/web_browser_section.png b/menu/icons/mini/web_browser_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/web_browser_section.png
Binary files differ
diff --git a/menu/icons/mini/web_editors_section.png b/menu/icons/mini/web_editors_section.png
new file mode 100644
index 0000000..1f8fe9c
--- /dev/null
+++ b/menu/icons/mini/web_editors_section.png
Binary files differ
diff --git a/menu/icons/mini/windowmanager_section.png b/menu/icons/mini/windowmanager_section.png
new file mode 100644
index 0000000..1ef2e47
--- /dev/null
+++ b/menu/icons/mini/windowmanager_section.png
Binary files differ
diff --git a/menu/icons/mini/wordprocessor_section.png b/menu/icons/mini/wordprocessor_section.png
new file mode 100644
index 0000000..faee603
--- /dev/null
+++ b/menu/icons/mini/wordprocessor_section.png
Binary files differ
diff --git a/menu/icons/monitoring_section.png b/menu/icons/monitoring_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/monitoring_section.png
Binary files differ
diff --git a/menu/icons/more_applications_other_section.png b/menu/icons/more_applications_other_section.png
new file mode 100644
index 0000000..6f60235
--- /dev/null
+++ b/menu/icons/more_applications_other_section.png
Binary files differ
diff --git a/menu/icons/more_applications_section.png b/menu/icons/more_applications_section.png
new file mode 100644
index 0000000..6f60235
--- /dev/null
+++ b/menu/icons/more_applications_section.png
Binary files differ
diff --git a/menu/icons/multimedia_section.png b/menu/icons/multimedia_section.png
new file mode 100644
index 0000000..cbab725
--- /dev/null
+++ b/menu/icons/multimedia_section.png
Binary files differ
diff --git a/menu/icons/networking_configuration_section.png b/menu/icons/networking_configuration_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/networking_configuration_section.png
Binary files differ
diff --git a/menu/icons/networking_section.png b/menu/icons/networking_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/networking_section.png
Binary files differ
diff --git a/menu/icons/networking_www_section.png b/menu/icons/networking_www_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/networking_www_section.png
Binary files differ
diff --git a/menu/icons/news_section.png b/menu/icons/news_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/news_section.png
Binary files differ
diff --git a/menu/icons/numerical_analysis_section.png b/menu/icons/numerical_analysis_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/numerical_analysis_section.png
Binary files differ
diff --git a/menu/icons/office_accessories_section.png b/menu/icons/office_accessories_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/office_accessories_section.png
Binary files differ
diff --git a/menu/icons/office_drawing_section.png b/menu/icons/office_drawing_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/office_drawing_section.png
Binary files differ
diff --git a/menu/icons/office_section.png b/menu/icons/office_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/office_section.png
Binary files differ
diff --git a/menu/icons/other_amusement.png b/menu/icons/other_amusement.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/other_amusement.png
Binary files differ
diff --git a/menu/icons/other_archiving.png b/menu/icons/other_archiving.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/other_archiving.png
Binary files differ
diff --git a/menu/icons/other_configuration.png b/menu/icons/other_configuration.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/other_configuration.png
Binary files differ
diff --git a/menu/icons/other_networking.png b/menu/icons/other_networking.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/other_networking.png
Binary files differ
diff --git a/menu/icons/other_sciences.png b/menu/icons/other_sciences.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/other_sciences.png
Binary files differ
diff --git a/menu/icons/packaging_section.png b/menu/icons/packaging_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/packaging_section.png
Binary files differ
diff --git a/menu/icons/parallel_computing_section.png b/menu/icons/parallel_computing_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/parallel_computing_section.png
Binary files differ
diff --git a/menu/icons/pda_section.png b/menu/icons/pda_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/pda_section.png
Binary files differ
diff --git a/menu/icons/physics_section.png b/menu/icons/physics_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/physics_section.png
Binary files differ
diff --git a/menu/icons/presentation_section.png b/menu/icons/presentation_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/presentation_section.png
Binary files differ
diff --git a/menu/icons/printing_section.png b/menu/icons/printing_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/printing_section.png
Binary files differ
diff --git a/menu/icons/publishing_section.png b/menu/icons/publishing_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/publishing_section.png
Binary files differ
diff --git a/menu/icons/puzzle_section.png b/menu/icons/puzzle_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/puzzle_section.png
Binary files differ
diff --git a/menu/icons/remote_access_section.png b/menu/icons/remote_access_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/remote_access_section.png
Binary files differ
diff --git a/menu/icons/robotics_section.png b/menu/icons/robotics_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/robotics_section.png
Binary files differ
diff --git a/menu/icons/sciences_section.png b/menu/icons/sciences_section.png
new file mode 100644
index 0000000..c61a344
--- /dev/null
+++ b/menu/icons/sciences_section.png
Binary files differ
diff --git a/menu/icons/shells_section.png b/menu/icons/shells_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/shells_section.png
Binary files differ
diff --git a/menu/icons/sound_section.png b/menu/icons/sound_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/sound_section.png
Binary files differ
diff --git a/menu/icons/sport_section.png b/menu/icons/sport_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/sport_section.png
Binary files differ
diff --git a/menu/icons/spreadsheet_section.png b/menu/icons/spreadsheet_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/spreadsheet_section.png
Binary files differ
diff --git a/menu/icons/strategy_section.png b/menu/icons/strategy_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/strategy_section.png
Binary files differ
diff --git a/menu/icons/system_other_section.png b/menu/icons/system_other_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/system_other_section.png
Binary files differ
diff --git a/menu/icons/system_section.png b/menu/icons/system_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/system_section.png
Binary files differ
diff --git a/menu/icons/taskmanagement_section.png b/menu/icons/taskmanagement_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/taskmanagement_section.png
Binary files differ
diff --git a/menu/icons/terminals_section.png b/menu/icons/terminals_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/terminals_section.png
Binary files differ
diff --git a/menu/icons/text_tools_section.png b/menu/icons/text_tools_section.png
new file mode 100644
index 0000000..793d68f
--- /dev/null
+++ b/menu/icons/text_tools_section.png
Binary files differ
diff --git a/menu/icons/timemanagement_section.png b/menu/icons/timemanagement_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/timemanagement_section.png
Binary files differ
diff --git a/menu/icons/toys_section.png b/menu/icons/toys_section.png
new file mode 100644
index 0000000..ca31948
--- /dev/null
+++ b/menu/icons/toys_section.png
Binary files differ
diff --git a/menu/icons/video_conferences_section.png b/menu/icons/video_conferences_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/video_conferences_section.png
Binary files differ
diff --git a/menu/icons/video_section.png b/menu/icons/video_section.png
new file mode 100644
index 0000000..cbab725
--- /dev/null
+++ b/menu/icons/video_section.png
Binary files differ
diff --git a/menu/icons/web_browser_section.png b/menu/icons/web_browser_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/web_browser_section.png
Binary files differ
diff --git a/menu/icons/web_editors_section.png b/menu/icons/web_editors_section.png
new file mode 100644
index 0000000..a9a9d2e
--- /dev/null
+++ b/menu/icons/web_editors_section.png
Binary files differ
diff --git a/menu/icons/windowmanager_section.png b/menu/icons/windowmanager_section.png
new file mode 100644
index 0000000..4d9a9dc
--- /dev/null
+++ b/menu/icons/windowmanager_section.png
Binary files differ
diff --git a/menu/icons/wordprocessor_section.png b/menu/icons/wordprocessor_section.png
new file mode 100644
index 0000000..7abe204
--- /dev/null
+++ b/menu/icons/wordprocessor_section.png
Binary files differ
diff --git a/menu/make-session.filter b/menu/make-session.filter
new file mode 100644
index 0000000..f9bf2a5
--- /dev/null
+++ b/menu/make-session.filter
@@ -0,0 +1 @@
+^.(/usr/share/X11/dm\.d/|/etc/X11/wmsession\.d/)
diff --git a/menu/make-session.script b/menu/make-session.script
new file mode 100755
index 0000000..9cce4a2
--- /dev/null
+++ b/menu/make-session.script
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/sbin/fndSession
diff --git a/menu/menu.dtd b/menu/menu.dtd
new file mode 100644
index 0000000..1bca3ed
--- /dev/null
+++ b/menu/menu.dtd
@@ -0,0 +1,84 @@
+<!-- For explanations see http://www.freedesktop.org/standards/menu-spec -->
+<!ELEMENT Menu (
+ Name, (
+ Directory
+ | DefaultAppDirs
+ | AppDir
+ | DefaultDirectoryDirs
+ | DirectoryDir
+ | LegacyDir
+ | KDELegacyDirs
+ | MergeFile
+ | DefaultMergeDirs
+ | MergeDir
+ | OnlyUnallocated
+ | NotOnlyUnallocated
+ | Deleted
+ | NotDeleted
+ | Include
+ | Exclude
+ | Move
+ | Menu
+ | Layout
+ | DefaultLayout
+ )*
+)>
+
+<!ELEMENT Name (#PCDATA)>
+
+<!ELEMENT Directory (#PCDATA)>
+
+<!ELEMENT DefaultAppDirs EMPTY>
+<!ELEMENT AppDir (#PCDATA)>
+
+<!ELEMENT DefaultDirectoryDirs EMPTY>
+<!ELEMENT DirectoryDir (#PCDATA)>
+
+<!ELEMENT LegacyDir (#PCDATA)>
+<!ATTLIST LegacyDir prefix CDATA #IMPLIED>
+<!ELEMENT KDELegacyDirs EMPTY>
+
+<!ELEMENT MergeFile (#PCDATA)>
+<!ATTLIST MergeFile type (path|parent) #IMPLIED>
+
+<!ELEMENT DefaultMergeDirs EMPTY>
+<!ELEMENT MergeDir (#PCDATA)>
+
+<!ELEMENT OnlyUnallocated EMPTY>
+<!ELEMENT NotOnlyUnallocated EMPTY>
+
+<!ELEMENT Deleted EMPTY>
+<!ELEMENT NotDeleted EMPTY>
+
+<!ELEMENT Exclude ((Category|Filename|And|Or|Not|All)*)>
+<!ELEMENT Include ((Category|Filename|And|Or|Not|All)*)>
+
+<!ELEMENT And ((Category|Filename|And|Or|Not|All)*)>
+<!ELEMENT Or ((Category|Filename|And|Or|Not|All)*)>
+<!ELEMENT Not ((Category|Filename|And|Or|Not|All)*)>
+<!ELEMENT Filename (#PCDATA)>
+<!ELEMENT Category (#PCDATA)>
+<!ELEMENT All EMPTY>
+
+<!ELEMENT Move ((Old,New)*)>
+<!ELEMENT Old (#PCDATA)>
+<!ELEMENT New (#PCDATA)>
+
+<!ELEMENT Layout ((Filename|Menuname|Separator|Merge)*)>
+<!ELEMENT DefaultLayout ((Filename|Menuname|Separator|Merge)*)>
+<!ATTLIST DefaultLayout show_empty (true|false) #IMPLIED>
+<!ATTLIST DefaultLayout inline (true|false) #IMPLIED>
+<!ATTLIST DefaultLayout inline_limit CDATA #IMPLIED>
+<!ATTLIST DefaultLayout inline_header (true|false) #IMPLIED>
+<!ATTLIST DefaultLayout inline_alias (true|false) #IMPLIED>
+
+<!ELEMENT Menuname (#PCDATA)>
+<!ATTLIST Menuname inline (true|false) #IMPLIED>
+<!ATTLIST Menuname inline_limit CDATA #IMPLIED>
+<!ATTLIST Menuname inline_header (true|false) #IMPLIED>
+<!ATTLIST Menuname inline_alias (true|false) #IMPLIED>
+
+<!ELEMENT Separator EMPTY>
+
+<!ELEMENT Merge EMPTY>
+<!ATTLIST Merge type (menus|files|all) #REQUIRED>
diff --git a/menu/menustyle.csh b/menu/menustyle.csh
new file mode 100755
index 0000000..a3e6960
--- /dev/null
+++ b/menu/menustyle.csh
@@ -0,0 +1,13 @@
+set MGA_MENU_STYLE=mageia
+
+foreach file (/etc/sysconfig/menustyle $HOME/.menustyle)
+ if ( -f $file ) then
+ eval `sed 's|^#.*||' $file | sed 's|\([^=]*\)=\([^=]*\)|set \1=\2|g' | sed 's|$|;|' `
+ endif
+end
+
+if ($MGA_MENU_STYLE == discovery && ! ${?XDG_CONFIG_DIRS}) then
+ set MGA_MENU_STYLE=mageia
+endif
+
+setenv MGA_MENU_STYLE $MGA_MENU_STYLE
diff --git a/menu/menustyle.sh b/menu/menustyle.sh
new file mode 100755
index 0000000..6096ab2
--- /dev/null
+++ b/menu/menustyle.sh
@@ -0,0 +1,10 @@
+MGA_MENU_STYLE=mageia
+
+[ -r /etc/sysconfig/menustyle ] && . /etc/sysconfig/menustyle
+[ -r $HOME/.menustyle ] && . $HOME/.menustyle
+
+if [ "$MGA_MENU_STYLE" = "discovery" ]; then
+ MGA_MENU_STYLE=mageia
+fi
+
+export MGA_MENU_STYLE
diff --git a/menu/update-menus b/menu/update-menus
new file mode 100755
index 0000000..bd21520
--- /dev/null
+++ b/menu/update-menus
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+usage() {
+echo "Usage: update-menus [options]"
+echo " -v Be verbose about what is going on."
+echo " -u generate only user menu (useful for root user)"
+echo " -h, --help This message."
+
+exit 0
+}
+
+
+VERBOSE=0
+
+if [ "$DURING_INSTALL" = "1" ]; then
+ exit 0
+fi
+
+if [ "$UID" == "0" ]; then
+ USER_MENU=0
+else
+ USER_MENU=1
+fi
+
+if [ $# != 0 ]; then
+
+while getopts ":vunh" option
+do
+ case $option in
+ v ) VERBOSE=1 ; RUN_PARTS_ARG="--verbose" ;;
+ u ) USER_MENU=1 ;;
+ h ) usage ;;
+ esac
+done
+fi
+
+export VERBOSE
+export USER_MENU
+
+if [ -d /etc/menu.d ]; then
+ run-parts $RUN_PARTS_ARG /etc/menu.d
+ if [ "$USER_MENU" = "1" ]; then
+ touch "$HOME/.menu-updates.stamp" 2> /dev/null
+ else
+ touch /var/lib/menu/.menu-updates.stamp 2> /dev/null
+ fi
+fi
+
diff --git a/menu/update-menus.filter b/menu/update-menus.filter
new file mode 100644
index 0000000..809cc56
--- /dev/null
+++ b/menu/update-menus.filter
@@ -0,0 +1 @@
+^.(/usr|/opt/kde3)/share/applications/.*\.desktop$
diff --git a/menu/update-menus.script b/menu/update-menus.script
new file mode 100755
index 0000000..7f15cb0
--- /dev/null
+++ b/menu/update-menus.script
@@ -0,0 +1,2 @@
+#!/bin/sh
+update-menus
diff --git a/menu/xdg_menu b/menu/xdg_menu
new file mode 100755
index 0000000..931b373
--- /dev/null
+++ b/menu/xdg_menu
@@ -0,0 +1,2300 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2003 SuSE Linux AG, Nuernberg, Germany. All rights reserved.
+#
+# Author: nadvornik@suse.cz
+#
+#
+
+use strict;
+use Locale::gettext;
+use Getopt::Long;
+use Encode;
+use I18N::Langinfo qw(langinfo CODESET);
+use POSIX qw(locale_h);
+
+my $Version = "0.2";
+
+my $DefaultAppDirs;
+my $DefaultDirectoryDirs;
+my @KDELegacyDirs;
+
+my $format = 'WindowMaker';
+my $desktop_name;
+my $language = '';
+my $charset = 'iso-8859-1';
+my $root_cmd = 'xdg_menu_su';
+
+my $die_on_error = 0;
+my $verbose = 0;
+my $fullmenu = 0;
+
+my @language_keys;
+
+my @accessed_files;
+my @save_ARGV = @ARGV;
+
+
+my %Desktop_entries;
+my %Directory_entries;
+
+sub check_file ($)
+{
+ my ($file) =@_;
+
+ unless (-e $file) {
+ push @accessed_files, "X $file";
+ return '';
+ }
+
+ if (-d $file) {
+ push @accessed_files, "D $file";
+ return 'D';
+ } else {
+ push @accessed_files, "F $file";
+ return 'F';
+ }
+}
+
+sub findicon
+{
+
+# my $theme = "hicolor";
+
+ my $iconname = shift;
+
+
+ my $home = $ENV{"HOME"};
+ my $xdg_data_dirs = $ENV{"XDG_DATA_DIRS"};
+
+ my (@xdg_data_dirs);
+ @xdg_data_dirs = split(":",$xdg_data_dirs);
+
+ my (@icon_search_path);
+
+ my (@categorylist);
+ @categorylist = ("apps", "places", "devices", "actions", "animations", "categories", "emblems", "emotes", "filesystems", "intl", "mimetypes", "status", "stock");
+
+ my (@sizelist);
+ @sizelist = (16, 22, 24, 26, 32, 36, 48, 64, 72, 128, 192, 256);
+
+ my $thisdir = $home."/.icons";
+ ( -d $thisdir ) && push @icon_search_path, $thisdir;
+
+
+
+ foreach my $dir (@xdg_data_dirs)
+ {
+ my $theme = "hicolor";
+ my $size;
+ my $category;
+ foreach $size (@sizelist)
+ {
+ foreach $category (@categorylist)
+ {
+ $thisdir = $dir."/icons/".$theme."/".$size."x".$size."/".$category;
+ ( -d $thisdir ) && push @icon_search_path, $thisdir;
+ }
+ }
+ $thisdir = $dir."/icons/mini";
+ ( -d $thisdir ) && push @icon_search_path, $thisdir;
+ $thisdir = $dir."/icons";
+ ( -d $thisdir ) && push @icon_search_path, $thisdir;
+ $thisdir = $dir."/icons/large";
+ ( -d $thisdir ) && push @icon_search_path, $thisdir;
+ $theme = "gnome";
+ foreach $size (@sizelist)
+ {
+ foreach $category (@categorylist)
+ {
+ $thisdir = $dir."/icons/".$theme."/".$size."x".$size."/".$category;
+ ( -d $thisdir ) && push @icon_search_path, $thisdir;
+ }
+ }
+ }
+
+ push @icon_search_path, "/usr/share/pixmaps";
+
+ my $filename;
+
+ if ( -f $iconname )
+ {
+ return $iconname;
+ }
+ else
+ {
+
+ foreach my $dir (@icon_search_path)
+ {
+ foreach my $ext ('','.png','.xpm')
+ {
+ $filename = $dir."/".$iconname.$ext;
+ ( -f $filename ) && return $filename;
+ }
+ }
+ }
+}
+
+sub add_png_extension_if_needed ($)
+{
+ my ($f) = @_;
+ return $f =~ /\.(png|xpm|svg)$/ ? $f : "$f.png";
+}
+
+sub scan_AppDir ($$;$)
+{
+ my ($pool, $dir, $topdir) = @_;
+
+ check_file($dir);
+ $topdir = $dir unless defined $topdir;
+
+ opendir(DIR, $dir) or return;
+
+ foreach my $entry (readdir(DIR)) {
+
+ if ( -f "$dir/$entry" && $entry =~ /\.desktop$/ ) {
+ read_desktop_entry($pool, "$dir/$entry", $topdir);
+ }
+ elsif ( -d "$dir/$entry" && $entry ne '.' && $entry ne '..' && $entry ne '.hidden') {
+ scan_AppDir ($pool, "$dir/$entry", $topdir);
+ }
+ }
+ closedir DIR;
+}
+
+sub scan_DirectoryDir ($$;$)
+{
+ my ($pool, $dir, $topdir) = @_;
+
+ check_file($dir);
+ $topdir = $dir unless defined $topdir;
+
+ opendir(DIR, $dir) or return;
+
+ foreach my $entry (readdir(DIR)) {
+
+ if ( -f "$dir/$entry" && $entry =~ /\.directory$/ ) {
+ read_directory_entry($pool, "$dir/$entry", $topdir);
+ }
+ elsif ( -d "$dir/$entry" && $entry ne '.' && $entry ne '..' && $entry ne '.hidden') {
+ scan_DirectoryDir ($pool, "$dir/$entry", $topdir);
+ }
+ }
+
+ closedir DIR;
+}
+
+sub read_directory_entry
+{
+ my ($pool, $file, $topdir) = @_;
+
+
+ unless (defined $Directory_entries{$file}) {
+
+ check_file($file);
+
+ open(FILE, "<$file") or return;
+
+ my $in_desktop_entry = 0;
+ my %entry;
+ while (<FILE>) {
+ if (/^\[/) {
+ if (/^\[Desktop Entry\]/) {
+ $in_desktop_entry = 1;
+ }
+ elsif (/^\[.*\]/) {
+ $in_desktop_entry = 0;
+ }
+ }
+ elsif ($in_desktop_entry && /^([^=]*)=([^[:cntrl:]]*)/) {
+ $entry{$1} = $2;
+ }
+ }
+ close(FILE);
+
+ my $id = $file;
+ $id =~ s/^$topdir//;
+ $id =~ s/^\/*//;
+ $id =~ s/\//-/g;
+ $entry{'id'} = $id;
+
+ $Directory_entries{$file} = \%entry;
+ }
+
+ my $entry = $Directory_entries{$file};
+
+ $pool->{'Directory_entries'}{$entry->{'id'}} = $entry;
+}
+
+sub check_show_in ($)
+{
+ my ($entry) = @_;
+
+ return 1 unless defined $entry;
+
+ my %OnlyShowIn;
+ my %NotShowIn;
+
+ if (defined $entry->{'OnlyShowIn'}) {
+ foreach my $showin (split /;/, $entry->{'OnlyShowIn'}) {
+ $OnlyShowIn{$showin} = 1;
+ }
+ return 0 unless defined $OnlyShowIn{$desktop_name};
+ }
+ if (defined $entry->{'NotShowIn'}) {
+ foreach my $showin (split /;/, $entry->{'NotShowIn'}) {
+ $NotShowIn{$showin} = 1;
+ }
+ return 0 if defined $NotShowIn{$desktop_name} ;
+ }
+
+ return 1;
+}
+
+sub read_desktop_entry
+{
+ my ($pool, $file, $topdir) = @_;
+
+
+ unless (defined $Desktop_entries{$file}) {
+
+ check_file($file);
+
+ open(FILE, "<$file") or return;
+
+ my $in_desktop_entry = 0;
+ my %entry;
+ while (<FILE>) {
+ if (/^\[/) {
+ if (/^\[Desktop Entry\]/) {
+ $in_desktop_entry = 1;
+ }
+ elsif (/^\[.*\]/) {
+ $in_desktop_entry = 0;
+ }
+ }
+ elsif ($in_desktop_entry && /^([^=]*)=([^[:cntrl:]]*)/) {
+ $entry{$1} = $2;
+ }
+ }
+ close(FILE);
+
+ my $id = $file;
+ $id =~ s/^$topdir//;
+ $id =~ s/^\/*//;
+ $id =~ s/\//-/g;
+ $entry{'id'} = $id;
+
+ $entry{'refcount'} = 0;
+
+ $Desktop_entries{$file} = \%entry;
+ }
+
+ my $entry = $Desktop_entries{$file};
+
+ return unless defined $entry->{'Name'};
+ return unless defined $entry->{'Exec'};
+ return if $entry->{'Hidden'} eq 'true';
+ return if $entry->{'NoDisplay'} eq 'true';
+
+ return unless check_show_in($entry);
+
+ return if defined $entry->{'NotShowIn'} && $entry->{'NotShowIn'} eq $desktop_name;
+
+
+ if (defined $pool) {
+
+ foreach my $category (split /;/, $entry->{'Categories'}) {
+ $pool->{'Categories'}{$category} = [] unless defined $pool->{'Categories'}{$category};
+ push @{$pool->{'Categories'}{$category}}, $entry;
+ }
+
+ $pool->{'Desktop_entries'}{$entry->{'id'}} = $entry;
+ }
+
+ return $entry;
+}
+
+my $cached_pool;
+
+sub read_desktop_entries ($$)
+{
+ my ($directory_paths, $desktop_paths) = @_;
+
+ if ($cached_pool->{'Directory_paths'} eq $directory_paths &&
+ $cached_pool->{'Desktop_paths'} eq $desktop_paths) {
+
+ return $cached_pool;
+ }
+
+
+ my $pool = {'Desktop_entries' => {},
+ 'Categories' => {},
+ 'Directory_entries' => {},
+ 'Directory_paths' => $directory_paths,
+ 'Desktop_paths' => $desktop_paths
+ };
+
+ foreach my $dir (split /:/, $directory_paths) {
+ next if $dir =~ /^\s*$/;
+ scan_DirectoryDir($pool, $dir);
+ }
+
+ foreach my $dir (split /:/, $desktop_paths) {
+ next if $dir =~ /^\s*$/;
+ scan_AppDir($pool, $dir);
+ }
+
+ $cached_pool = $pool;
+
+ return $pool;
+}
+
+sub dump_entry_list ($)
+{
+ my ($list) = @_;
+
+ print "list: ";
+ foreach my $entry (@$list) {
+ print "$entry->{id} ";
+ }
+ print "\n";
+
+}
+
+sub get_directory_entry ($$)
+{
+ my ($entry, $pool) = @_;
+
+ return $pool->{'Directory_entries'}{$entry};
+}
+
+sub interpret_Include
+{
+ my ($tree, $entries, $pool) = @_;
+ my %exist;
+
+ my $i = 0;
+
+
+ my @list = interpret_entry_node($tree, 'Or', $pool);
+
+ foreach my $e (@$entries) {
+ if ($e->{type} eq 'desktop') {
+ $exist{$e->{desktop}} = 1;
+ }
+ }
+
+
+# dump_entry_list(\@list);
+
+ foreach my $entry (@list) {
+
+ next if $exist{$entry};
+
+ push @$entries, {type => 'desktop', desktop => $entry};
+ $entry->{'refcount'}++;
+
+ $exist{$entry} = 1;
+
+ }
+}
+
+sub interpret_Exclude
+{
+ my ($tree, $entries, $pool) = @_;
+
+ my $i = 0;
+
+ my @list = interpret_entry_node($tree, 'Or', $pool);
+
+
+ foreach my $entry (@list) {
+
+ my $i = 0;
+ while (defined $entries->[$i]) {
+ my $exist = $entries->[$i];
+ if ($exist->{type} eq 'desktop' &&
+ $exist->{desktop} eq $entry) {
+ splice @$entries, $i, 1;
+ $entry->{'refcount'}--;
+ }
+ else {
+ $i++;
+ }
+ }
+ }
+}
+
+
+sub interpret_entry_node ($$$)
+{
+ my ($tree, $node, $pool) = @_;
+
+ my $i = 0;
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ my @subtree;
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Filename') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ my $entry = $tree->[$i][2];
+ if (defined $pool->{'Desktop_entries'}{$entry}) {
+ push @subtree, [$pool->{'Desktop_entries'}{$entry}];
+ }
+ else {
+ push @subtree, [];
+ }
+ }
+ else {
+ print STDERR "Filename\n";
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'Category') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ my $category = $tree->[$i][2];
+ if (defined $pool->{'Categories'}{$category}) {
+ push @subtree, $pool->{'Categories'}{$category};
+ }
+ else {
+ push @subtree, [];
+ }
+ }
+ else {
+ print STDERR "Category\n";
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'All') {
+ $i++;
+ if (values %{$pool->{'Desktop_entries'}} > 0) {
+ push @subtree, [values %{$pool->{'Desktop_entries'}}];
+ }
+ else {
+ push @subtree, [];
+ }
+ $i++;
+ }
+ elsif ($tree->[$i] eq '0') {
+ $i++;
+ $i++;
+ }
+ else {
+ my @res = interpret_entry_node($tree->[$i+1], $tree->[$i], $pool);
+ push @subtree, \@res;
+ $i++; $i++;
+ }
+ }
+
+ if ($node eq 'Or')
+ {
+# print "or - \n";
+
+ my %used;
+ my @res;
+ foreach my $st (@subtree) {
+# print " st: ";
+# dump_entry_list($st);
+ foreach my $entry (@$st) {
+ if (! defined $used{$entry}) {
+ push @res, $entry;
+ $used{$entry} = 1;
+ }
+ }
+ }
+# print " res: ";
+# dump_entry_list(\@res);
+ return @res;
+ } elsif ($node eq 'And')
+ {
+ my %used;
+ my @res;
+# print "and - \n";
+ my $cnt = @subtree;
+ my $min = @{$subtree[0]};
+ my $min_idx = 0;
+ my $idx = 0;
+
+ foreach my $st (@subtree) {
+# print " st: ";
+# dump_entry_list($st);
+
+ my $num = @$st;
+ if ($num < $min) {
+ $min = $num;
+ $min_idx = $idx;
+ }
+
+ my %dupes;
+ foreach my $entry (@$st) {
+ next if $dupes{$entry};
+ $dupes{$entry} = 1;
+
+ if (! defined $used{$entry}) {
+ $used{$entry} = 1;
+ }
+ else {
+ $used{$entry} ++
+ }
+ }
+
+ $idx ++;
+ }
+ return () if $cnt == 0;
+ foreach my $entry (@{$subtree[$min_idx]}) {
+ push @res, $entry if $used{$entry} == $cnt;
+ }
+
+# print " res: ";
+# dump_entry_list(\@res);
+ return @res;
+ } elsif ($node eq 'Not')
+ {
+ my %used;
+ my @res;
+# print "not - \n";
+ my $cnt = @subtree;
+ foreach my $st (@subtree) {
+# print " st: ";
+# dump_entry_list($st);
+ foreach my $entry (@$st) {
+ $used{$entry} = 1;
+ }
+ }
+ return if $cnt == 0;
+ foreach my $entry (values %{$pool->{'Desktop_entries'}}) {
+ push @res, $entry if !defined $used{$entry};
+ }
+
+# print " res: ";
+# dump_entry_list(\@res);
+ return @res;
+ } else {
+ print STDERR "Can't use '$node' inside <Include> or <Exclude>\n";
+ exit 1 if $die_on_error;
+ return ();
+ }
+}
+
+sub interpret_root ($$)
+{
+ my ($tree, $topdir) = @_;
+ if ($tree->[0] eq 'Menu') {
+ return interpret_menu($tree->[1]);
+ }
+ else {
+ print STDERR "No toplevel Menu\n";
+ exit 1 if $die_on_error;
+ return;
+ }
+}
+
+
+sub interpret_menu ($;$$)
+{
+ my ($tree, $directory_paths, $desktop_paths) = @_;
+
+ $directory_paths = '' unless defined $directory_paths;
+ $desktop_paths = '' unless defined $desktop_paths;
+
+ my %menu = ('entries' => [],
+ 'OnlyUnallocated' => 0,
+ 'DontShowIfEmpty' => 0,
+ 'Deleted' => 0);
+
+ my $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'AppDir') {
+ if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') {
+ $desktop_paths .= ':' . $tree->[$i + 1][2];
+ splice @$tree, $i, 2;
+ }
+ else {
+ print STDERR "wrong AppDir\n";
+ exit 1 if $die_on_error;
+ $i++;
+ $i++;
+ }
+ }
+ elsif ($tree->[$i] eq 'DefaultAppDirs') {
+ $desktop_paths .= ':' . $DefaultAppDirs;
+ splice @$tree, $i, 2;
+ }
+ elsif ($tree->[$i] eq 'DirectoryDir') {
+ if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') {
+ $directory_paths .= ':' . $tree->[$i + 1][2];
+ splice @$tree, $i, 2;
+ }
+ else {
+ print STDERR "wrong DirectoryDir\n";
+ exit 1 if $die_on_error;
+ $i++;
+ $i++;
+ }
+ }
+ elsif ($tree->[$i] eq 'DefaultDirectoryDirs') {
+ $directory_paths .= ':' . $DefaultDirectoryDirs;
+ splice @$tree, $i, 2;
+ }
+ else {
+ $i++;
+ $i++;
+ }
+ }
+
+
+ $menu{directory_paths} = $directory_paths;
+ $menu{desktop_paths} = $desktop_paths;
+
+ my $pool = read_desktop_entries($directory_paths, $desktop_paths);
+
+
+ $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Menu') {
+ $i++;
+ my $submenu = interpret_menu($tree->[$i], $directory_paths, $desktop_paths);
+ push @{$menu{'entries'}}, {type => 'menu', menu => $submenu};
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'Name') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ $menu{'Name'} = $tree->[$i][2];
+ }
+ else {
+ print STDERR "wrong Name\n";
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'Directory') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ $menu{'Directory'} = get_directory_entry($tree->[$i][2], $pool);
+# print "Directory " . $tree->[$i][2] . "\n";
+ }
+ else {
+ print STDERR "wrong Directory\n";
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'OnlyUnallocated') {
+ $menu{'OnlyUnallocated'} = 1;
+ $i++;
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'DontShowIfEmpty') {
+ $menu{'DontShowIfEmpty'} = 1;
+ $i++;
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'Deleted') {
+ $menu{'Deleted'} = 1;
+ $i++;
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'NotDeleted') {
+ $menu{'Deleted'} = 0;
+ $i++;
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'Include') {
+ $i++;
+ interpret_Include($tree->[$i], $menu{'entries'}, $pool);
+ $i++;
+ }
+ elsif ($tree->[$i] eq 'Exclude') {
+ $i++;
+ interpret_Exclude($tree->[$i], $menu{'entries'}, $pool);
+ $i++;
+ }
+ elsif ($tree->[$i] eq '0') {
+ $i++;
+ if ($tree->[$i] !~ /^\s*$/) {
+ print STDERR "skip '$tree->[$i]'\n" ;
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ else {
+ print STDERR "Unknown '$tree->[$i]':\n";
+ $i++;
+ print STDERR " '@{$tree->[$i]}'\n";
+ $i++;
+ exit 1 if $die_on_error;
+ }
+ }
+
+ return \%menu;
+}
+
+
+sub read_menu ($;$)
+{
+ my ($file, $basedir) = @_;
+
+
+ if ($file !~ /^\// && defined $basedir) {
+ $file = "$basedir/$file";
+ }
+
+ unless (defined $basedir) {
+ $basedir = $file;
+ $basedir =~ s/\/[^\/]*$//;
+ }
+
+ unless (check_file($file)) {
+ print STDERR "WARNING: '$file' does not exist\n";
+ return ['Menu', [{}]];
+ }
+
+ print STDERR "reading '$file'\n" if $verbose;
+
+ my $parser = new XML::Parser(Style => 'Tree');
+ my $tree = $parser->parsefile($file);
+
+ my $DefaultMergeDir = $file;
+ $DefaultMergeDir =~ s/^.*\///;
+ $DefaultMergeDir =~ s/\.menu$/-merged/;
+
+ read_includes($tree, $basedir, $DefaultMergeDir);
+
+ return $tree
+}
+
+sub read_menu_dir ($;$)
+{
+ my ($dir, $basedir) = @_;
+
+ my @out;
+
+ if ($dir !~ /^\// && defined $basedir) {
+ $dir = "$basedir/$dir";
+ }
+
+
+ check_file($dir);
+
+ opendir(DIR, $dir);
+
+ foreach my $entry (readdir(DIR)) {
+
+ if ( -f "$dir/$entry" && $entry =~ /\.menu$/ ) {
+ my $menu = read_menu("$dir/$entry");
+ $menu = remove_toplevel_Menu($menu);
+ push @out, @$menu;
+ }
+ }
+ closedir DIR;
+
+ return \@out;
+}
+
+sub quote_xml ($)
+{
+ my ($txt) = @_;
+
+ $txt =~ s/&/&amp;/g;
+ $txt =~ s/</&lt;/g;
+ $txt =~ s/>/&gt;/g;
+ return $txt;
+}
+
+sub read_legacy_dir ($;$)
+{
+ my ($dir,$basedir) = @_;
+ my $out;
+
+ $dir =~ s/\/*$//;
+
+ $basedir = $dir unless defined $basedir;
+
+ return "" if check_file($dir) ne 'D';
+
+ $out = "<Menu>\n";
+
+ if ($dir eq $basedir) {
+ my $xmldir = quote_xml($dir);
+
+ $out .= "<AppDir>$xmldir</AppDir>\n";
+ $out .= "<DirectoryDir>$xmldir</DirectoryDir>\n";
+ }
+ else {
+ my $name = $dir;
+ $name =~ s/\/*$//;
+ $name =~ s/^.*\///;
+
+ $name = quote_xml($name);
+
+ $out .= "<Name>$name</Name>\n";
+ }
+
+
+ if (-f "$dir/.directory") {
+
+ my $dir_id = "$dir/.directory";
+ $dir_id =~ s/^$basedir//;
+ $dir_id =~ s/^\///;
+ $dir_id = quote_xml($dir_id);
+
+ $out .= "<Directory>$dir_id</Directory>\n";
+ }
+
+ opendir(DIR, $dir);
+
+ foreach my $entry (readdir(DIR)) {
+
+ if ( -f "$dir/$entry" && $entry =~ /\.desktop$/ ) {
+ my $id = "$dir/$entry";
+ $id =~ s/^$basedir//;
+ $id =~ s/^\///;
+ $id =~ s/\//-/g;
+ $id = quote_xml($id);
+
+ my $desktop = read_desktop_entry(undef, "$dir/$entry", $basedir);
+ $out .= "<Include><Filename>$id</Filename></Include>\n" unless defined $desktop->{'Categories'}
+ }
+ elsif ( -d "$dir/$entry" && $entry ne '.' && $entry ne '..' && $entry ne '.hidden') {
+ $out .= read_legacy_dir("$dir/$entry", $basedir);
+ }
+ }
+ closedir DIR;
+ $out .= "</Menu>\n";
+ return $out;
+}
+
+sub remove_toplevel_Menu ($)
+{
+ my ($tree) = @_;
+ if ($tree->[0] eq 'Menu') {
+ shift @{$tree->[1]} if (ref($tree->[1][0]) eq 'HASH');
+ return $tree->[1];
+ }
+ else {
+ print STDERR "No toplevel Menu\n";
+ exit 1 if $die_on_error;
+ return;
+ }
+}
+
+sub read_includes ($$$)
+{
+ my ($tree, $basedir, $DefaultMergeDir) = @_;
+
+ my $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'MergeFile') {
+ if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') {
+ my $add_tree = read_menu($tree->[$i + 1][2], $basedir);
+ $add_tree = remove_toplevel_Menu($add_tree);
+
+ splice @$tree, $i, 2, @$add_tree;
+
+ }
+ else {
+ print STDERR "wrong MergeFile\n";
+ exit 1 if $die_on_error;
+ $i++;
+ $i++;
+ }
+
+ }
+ elsif ($tree->[$i] eq 'MergeDir') {
+ if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') {
+
+ my $add_tree = read_menu_dir($tree->[$i + 1][2], $basedir);
+
+ splice @$tree, $i, 2, @$add_tree;
+
+ }
+ else {
+ print STDERR "wrong MergeFile\n";
+ exit 1 if $die_on_error;
+ $i++;
+ $i++;
+ }
+
+ }
+ elsif ($tree->[$i] eq 'DefaultMergeDirs') {
+ my $add_tree = read_menu_dir($DefaultMergeDir, $basedir);
+ splice @$tree, $i, 2, @$add_tree;
+ }
+ elsif ($tree->[$i] eq 'LegacyDir') {
+ if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') {
+
+ my $xml = read_legacy_dir($tree->[$i + 1][2]);
+ print STDERR "reading legacy directory '" . $tree->[$i + 1][2] . "'\n" if $verbose;
+
+ my $parser = new XML::Parser(Style => 'Tree');
+ my $add_tree = $parser->parse($xml);
+ $add_tree = remove_toplevel_Menu($add_tree);
+ splice @$tree, $i, 2, @$add_tree;
+
+ }
+ else {
+ print STDERR "wrong LegacyDir\n";
+ exit 1 if $die_on_error;
+ $i++;
+ $i++;
+ }
+
+ }
+ elsif ($tree->[$i] eq 'KDELegacyDirs') {
+ my @out;
+ foreach my $dir (@KDELegacyDirs) {
+ my $xml = read_legacy_dir($dir);
+ print STDERR "reading legacy directory '$dir'\n" if $verbose;
+
+ my $parser = new XML::Parser(Style => 'Tree');
+ my $add_tree = $parser->parse($xml);
+ $add_tree = remove_toplevel_Menu($add_tree);
+ push @out, @$add_tree
+ }
+ splice @$tree, $i, 2, @out;
+ }
+ elsif ($tree->[$i] eq 'Menu') {
+ $i++;
+ read_includes($tree->[$i], $basedir, $DefaultMergeDir);
+ $i++;
+ }
+ else {
+ $i++;
+ $i++;
+ }
+ }
+}
+
+sub get_menu_name ($)
+{
+ my ($tree) = @_;
+ my $name;
+
+ my $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Name') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ $name = $tree->[$i][2];
+ last;
+ }
+ else {
+ print STDERR "wrong Name\n";
+ }
+ $i++;
+ }
+ else {
+ $i++;
+ $i++;
+ }
+ }
+
+ unless (defined $name) {
+ print STDERR "Menu has no name element\n";
+ }
+ return $name;
+}
+
+
+sub append_menu ($$)
+{
+ my ($target, $source) = @_;
+
+ my $i = 0;
+
+ $i++ if (ref($source->[$i]) eq 'HASH');
+
+ while (defined $source->[$i]) {
+ if ($source->[$i] ne 'Name') {
+ push @$target, $source->[$i];
+ push @$target, $source->[$i + 1];
+ }
+
+ $i++;
+ $i++;
+ }
+}
+
+
+sub merge_menus ($)
+{
+ my ($tree) = @_;
+
+ my %used; #menu name already used
+
+ my $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Menu') {
+ my $name = get_menu_name($tree->[$i + 1]);
+ if (defined $used{$name}) { #second menu with the same name
+ my $target = $used{$name};
+
+ append_menu($tree->[$target], $tree->[$i + 1]);
+
+ splice @$tree, $i, 2;
+ }
+ else { # first appearance
+ $used{$name} = $i + 1;
+ $i++;
+ $i++;
+ }
+ }
+ else {
+ $i++;
+ $i++;
+ }
+ }
+
+
+ $i = 0;
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Menu') {
+ merge_menus($tree->[$i + 1]);
+ }
+ $i++;
+ $i++;
+ }
+}
+
+sub read_Move ($$)
+{
+ my ($tree, $hash) = @_;
+
+ my $i = 0;
+
+ my $old = '';
+
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Old') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ $old = $tree->[$i][2];
+ }
+ else {
+ print STDERR "wrong Old\n";
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ if ($tree->[$i] eq 'New') {
+ $i++;
+ if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') {
+ $hash->{$old} = $tree->[$i][2];
+ }
+ else {
+ print STDERR "wrong New\n";
+ exit 1 if $die_on_error;
+ }
+ $i++;
+ }
+ else {
+ $i++;
+ $i++;
+ }
+ }
+}
+
+sub find_menu_in_tree ($$)
+{
+ my ($path, $tree) = @_;
+
+ my $root = $path;
+ $root =~ s/\/.*$//;
+
+ my $subpath = $path;
+ $subpath =~ s/^[^\/]*\/*//;
+
+ my $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Menu') {
+ if ($root eq get_menu_name($tree->[$i + 1])) {
+
+ if ($subpath eq '') {
+ return { 'parent' => $tree, 'index' => $i, 'menu' => $tree->[$i + 1]};
+ }
+ return find_menu_in_tree($subpath, $tree->[$i + 1]);
+ }
+ }
+
+ $i++;
+ $i++;
+ }
+
+ return undef;
+}
+
+sub copy_menu ($$)
+{
+ my ($path, $tree) = @_;
+
+ my $tail;
+ my $child;
+
+ foreach my $elem (reverse split(/\//, $path)) {
+ next if $elem eq '';
+
+ my $menu = [{}, 'Name', [{}, 0, $elem]];
+ push @$menu, ('Menu', $child) if defined $child;
+
+ $tail = $menu unless defined $tail;
+ $child = $menu;
+ }
+
+ append_menu($tail, $tree);
+
+ return $child;
+}
+
+sub move_menus ($)
+{
+ my ($tree) = @_;
+
+# print "@$tree\n";
+ my %move;
+
+ my $i = 0;
+
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Move') {
+
+ read_Move($tree->[$i + 1], \%move);
+ splice @$tree, $i, 2;
+ }
+ else {
+ $i++;
+ $i++;
+ }
+ }
+
+ foreach my $source (keys %move) {
+ my $sourceinfo = find_menu_in_tree($source, $tree);
+
+ if (defined $sourceinfo) {
+ my $target = copy_menu($move{$source}, $sourceinfo->{'menu'});
+ splice @{$sourceinfo->{'parent'}}, $sourceinfo->{'index'}, 2;
+ push @$tree, ('Menu', $target);
+ merge_menus($tree);
+ }
+ }
+
+ $i = 0;
+ $i++ if (ref($tree->[$i]) eq 'HASH');
+
+ while (defined $tree->[$i]) {
+ if ($tree->[$i] eq 'Menu') {
+ move_menus($tree->[$i + 1]);
+ }
+ $i++;
+ $i++;
+ }
+}
+
+sub remove_allocated ($)
+{
+ my ($menu) = @_;
+
+
+ my $i = 0;
+ while ($i < @{$menu->{'entries'}}) {
+ my $entry = $menu->{'entries'}[$i];
+
+ if ($entry->{type} eq 'menu') {
+ remove_allocated($entry->{menu});
+ $i++;
+ }
+ elsif ($entry->{type} eq 'desktop' &&
+ $menu->{'OnlyUnallocated'} &&
+ $entry->{desktop}{'refcount'} > 1) {
+
+ $entry->{desktop}{'refcount'}--;
+ splice @{$menu->{'entries'}}, $i, 1;
+ }
+ else {
+ $i++;
+ }
+
+
+ }
+ return 0;
+}
+
+
+sub remove_empty_menus ($)
+{
+ my ($menu) = @_;
+
+
+ my $i = 0;
+ while ($i < @{$menu->{'entries'}}) {
+ my $entry = $menu->{'entries'}[$i];
+
+ if ($entry->{type} eq 'menu' && remove_empty_menus($entry->{menu})) {
+ splice @{$menu->{'entries'}}, $i, 1;
+ }
+ else {
+ $i++;
+ }
+
+
+ }
+
+ return 1 if @{$menu->{'entries'}} == 0; # && $menu->{'DontShowIfEmpty'}; #menu is empty
+
+ return 0;
+}
+
+
+sub prepare_exec ($$)
+{
+ my ($exec, $desktop) = @_;
+
+ $exec =~ s/%f//g;
+ $exec =~ s/%F//g;
+ $exec =~ s/%u//g;
+ $exec =~ s/%U//g;
+ $exec =~ s/%d//g;
+ $exec =~ s/%D//g;
+ $exec =~ s/%n//g;
+ $exec =~ s/%N//g;
+ $exec =~ s/%i//g;
+ $exec =~ s/%k//g;
+ $exec =~ s/%v//g;
+ $exec =~ s/%m//g;
+
+ my $caption = $desktop->{Name};
+
+ $exec =~ s/%c/$caption/g;
+
+ $exec =~ s/%%/%/g;
+
+ $exec = "xterm -e $exec" if $desktop->{Terminal} eq '1' || $desktop->{Terminal} eq 'true';
+
+ $exec = "$root_cmd $exec" if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true';
+ return $exec;
+}
+
+sub get_loc_entry ($$)
+{
+ my ($desktop, $entry) = @_;
+
+ foreach my $key (@language_keys) {
+ my $loc_entry = $entry . "[$key]";
+ return $desktop->{$loc_entry} if defined $desktop->{$loc_entry} && $desktop->{$loc_entry} !~ /^\s*$/;
+ }
+
+ return $desktop->{$entry};
+}
+
+sub preprocess_menu ($)
+{
+ # localize, sort, prepare_exec
+ my ($menu) = @_;
+
+ return 0 if $menu->{'Deleted'};
+ return 0 unless check_show_in($menu->{'Directory'});
+ return 0 if defined $menu->{'Directory'} && $menu->{'Directory'}->{'NoDisplay'} eq 'true';
+
+ my $menu_name = $menu->{'Name'};
+ my $menu_icon = "";
+
+ if (defined $menu->{'Directory'}) {
+ my $directory = $menu->{'Directory'};
+ $menu_icon = $menu->{'Directory'}{'Icon'};
+ my $directory_name = get_loc_entry($directory, 'Name');
+
+ if (defined $directory_name) {
+ Encode::from_to($directory_name, "utf8", $charset)
+ if !defined $directory->{"Encoding"} || $directory->{"Encoding"} eq 'UTF-8';
+
+ $menu_name = $directory_name;
+ }
+ }
+
+ $menu->{'PrepName'} = $menu_name;
+ $menu->{'PrepIcon'} = $menu_icon;
+
+ my $i = 0;
+ while (defined $menu->{'entries'}[$i]) {
+ my $entry = $menu->{'entries'}[$i];
+ if ($entry->{'type'} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'id'};
+
+ my $desktop_name = get_loc_entry($desktop, 'Name');
+
+ if (defined $desktop_name) {
+ Encode::from_to($desktop_name, "utf8", $charset)
+ if !defined $desktop->{"Encoding"} || $desktop->{"Encoding"} eq 'UTF-8';
+
+ $name = $desktop_name;
+ }
+
+ $desktop->{'PrepName'} = $name;
+ $entry->{'Name'} = $name;
+ $entry->{'PrepName'} = $name;
+
+ $desktop->{'PrepExec'} = prepare_exec($desktop->{Exec}, $desktop);
+ $i++;
+ }
+ elsif ($entry->{type} eq 'menu') {
+ if (preprocess_menu ($entry->{'menu'})) {
+ $entry->{'Name'} = $entry->{'menu'}{'Name'};
+ $entry->{'PrepName'} = $entry->{'menu'}{'PrepName'};
+ $i++;
+ }
+ else {
+ splice @{$menu->{'entries'}}, $i, 1;
+ }
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ exit 1 if $die_on_error;
+ splice @{$menu->{'entries'}}, $i, 1;
+ }
+ }
+
+ $menu->{'entries'} = [ sort {$b->{'type'} cmp $a->{'type'} || $a->{'PrepName'} cmp $b->{'PrepName'}} @{$menu->{'entries'}} ];
+
+ my $i = 0;
+ my $prev_entry;
+ while (defined $menu->{'entries'}[$i]) {
+ my $entry = $menu->{'entries'}[$i];
+ if (defined $prev_entry &&
+ $entry->{'type'} eq 'desktop' &&
+ $prev_entry->{'type'} eq 'desktop' &&
+ $prev_entry->{'PrepName'} eq $entry->{'PrepName'} &&
+ $prev_entry->{'desktop'}->{'PrepExec'} eq $entry->{'desktop'}->{'PrepExec'}) {
+ splice @{$menu->{'entries'}}, $i, 1;
+ }
+ else {
+ $prev_entry = $entry;
+ $i++;
+ }
+ }
+
+ return 1;
+}
+
+sub output_twm_menu ($;$$)
+{
+ my ($menu, $toplevel, $path) = @_;
+
+ my $output = '';
+
+ $path = '' unless defined $path;
+
+ $toplevel = 1 unless defined $toplevel;
+
+ my $menu_name = $menu->{'PrepName'};
+ my $menu_id = "$path-" . $menu->{'Name'};
+ $menu_id =~ s/\s/_/g;
+
+ $menu_id = 'xdg_menu' if $toplevel;
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'menu') {
+ $output .= output_twm_menu($entry->{'menu'}, 0, $menu_id);
+ }
+ }
+
+ $output .= "menu \"$menu_id\" {\n";
+ $output .= "\"$menu_name\" f.title\n";
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ my $exec = $desktop->{'PrepExec'};
+ my $color = '';
+
+ $exec =~ s/"/\\"/g;
+
+ $color = ' ("red":"grey")' if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true';
+
+ $output .= "\"$name\"$color f.exec \"$exec&\"\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ my $name = $entry->{'menu'}{'PrepName'};
+ my $id = "$menu_id-" . $entry->{'menu'}{'Name'};
+
+ $id =~ s/\s/_/g;
+
+ $output .= "\"$name\" f.menu \"$id\"\n";
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+ $output .= "}\n";
+
+ return $output;
+}
+
+sub output_wmaker_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $indent = 0 unless defined $indent;
+
+ my $menu_name = $menu->{'PrepName'};
+
+ $output .= ' ' x $indent;
+ $output .= "\"$menu_name\" MENU\n";
+
+ if ($indent == 0) {
+ $output .= "\n#include \"user.menu\"\n\n";
+ }
+
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ my $exec = $desktop->{'PrepExec'};
+
+ $output .= ' ' x $indent;
+ $output .= " \"$name\" EXEC $exec\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ $output .= output_wmaker_menu ($entry->{'menu'}, $indent + 1);
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+
+ if ($indent == 0) {
+ textdomain("menu-messages");
+
+ my $exit_msg = gettext("Exit");
+ my $restart_msg = gettext("Restart");
+ if (langinfo(CODESET) ne 'UTF-8') {
+ $exit_msg = Encode::encode_utf8($exit_msg);
+ $restart_msg = Encode::encode_utf8($restart_msg);
+ }
+ $output .= "\t\"$exit_msg\" MENU\n\t\t\"$restart_msg\" RESTART\n\t\t\"$exit_msg\" EXIT\n\"$exit_msg\" END\n";
+ }
+
+ $output .= ' ' x $indent;
+ $output .= "\"$menu_name\" END\n";
+
+ return $output;
+}
+
+sub output_fvwm2_menu ($;$$)
+{
+ my ($menu, $toplevel, $path) = @_;
+
+ my $output = '';
+
+ $path = '' unless defined $path;
+
+ $toplevel = 1 unless defined $toplevel;
+
+ my $menu_name = $menu->{'PrepName'};
+ my $menu_id = "$path-" . $menu->{'Name'};
+ $menu_id =~ s/\s/_/g;
+
+ $menu_id = 'xdg_menu' if $toplevel;
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'menu') {
+ $output .= output_fvwm2_menu($entry->{'menu'}, 0, $menu_id);
+ }
+ }
+
+ $output .= "DestroyMenu \"$menu_id\"\n";
+ $output .= "AddToMenu \"$menu_id\" \"$menu_name\" Title\n";
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ my $exec = $desktop->{'PrepExec'};
+
+ $output .= "+ \"$name\" Exec $exec\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ my $name = $entry->{'menu'}{'PrepName'};
+ my $id = "$menu_id-" . $entry->{'menu'}{'Name'};
+ $id =~ s/\s/_/g;
+
+ $output .= "+ \"$name\" Popup \"$id\"\n";
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+ $output .= "\n";
+
+ return $output;
+}
+
+sub output_blackbox_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+ my $run = $format eq 'fluxbox' ? 'fbrun -nearmouse' : 'bbrun -a -w';
+
+ $output .= "[begin] (Menu)\n";
+ $output .= output_blackbox_inner_menu ($menu, $indent);
+ $output .= "[separator]\n";
+ $output .= '[config] (Configuration)
+ [workspaces] (Workspace)
+ [submenu] (System Styles) {Choose a style...}
+ [stylesdir] (/usr/share/blackbox/styles)
+ [stylesdir] (/usr/share/fluxbox/styles)
+ [stylesdir] (/usr/share/openbox/styles)
+ [end]
+ [submenu] (User Styles) {Choose a style...}
+ [stylesdir] (~/.blackbox/styles)
+ [stylesdir] (~/.fluxbox/styles)
+ [stylesdir] (~/.openbox/styles)
+ [end]
+ [separator]
+ [exec] (Run Command) {' . $run . '}
+ [exec] (Lock Screen) {xlock}
+ [restart] (Restart) {}
+ [exit] (Logout)
+[end]
+';
+ $output .= "[end]\n";
+ return $output;
+}
+
+
+sub output_blackbox_inner_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $indent = 0 unless defined $indent;
+
+ my $menu_name = $menu->{'PrepName'};
+ $menu_name =~ s/\)/\\\)/g;
+ my $menu_icon = findicon($menu->{'PrepIcon'} || "folder");
+
+ $output .= ' ' x $indent;
+ $output .= "[submenu] ($menu_name) <$menu_icon>\n";
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ $name =~ s/\)/\\\)/g;
+ my $exec = $desktop->{'PrepExec'};
+ my $icon = findicon($desktop->{'Icon'});
+
+ $output .= ' ' x $indent;
+ $output .= " [exec] ($name) {$exec} <$icon>\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ $output .= output_blackbox_inner_menu ($entry->{'menu'}, $indent + 1);
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+ $output .= ' ' x $indent;
+ $output .= "[end] # ($menu_name)\n";
+
+ return $output;
+}
+
+sub output_icewm_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $indent = 0 unless defined $indent;
+
+ my $menu_name = $menu->{'PrepName'};
+ my $menu_icon = $menu->{'PrepIcon'} || "folder" ;
+
+ $output .= ' ' x $indent;
+ $output .= "menu \"$menu_name\" $menu_icon.png {\n";
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ my $exec = $desktop->{'PrepExec'};
+ my $icon = add_png_extension_if_needed($desktop->{'Icon'});
+
+ $output .= ' ' x $indent;
+ $output .= " prog \"$name\" $icon $exec\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ $output .= output_icewm_menu ($entry->{'menu'}, $indent + 1);
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+ $output .= ' ' x $indent;
+ $output .= "}\n";
+
+ return $output;
+}
+
+sub prepare_exec_xfce4 ($$)
+{
+ my ($exec, $desktop) = @_;
+
+ $exec =~ s/%f//g;
+ $exec =~ s/%F//g;
+ $exec =~ s/%u//g;
+ $exec =~ s/%U//g;
+ $exec =~ s/%d//g;
+ $exec =~ s/%D//g;
+ $exec =~ s/%n//g;
+ $exec =~ s/%N//g;
+ $exec =~ s/%i//g;
+ $exec =~ s/%k//g;
+ $exec =~ s/%v//g;
+ $exec =~ s/%m//g;
+
+ my $caption = $desktop->{Name};
+
+ $exec =~ s/%c/$caption/g;
+
+ $exec =~ s/%%/%/g;
+
+ $exec =~ s/\"/&quot;/g;
+
+ $exec = "$root_cmd $exec" if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true';
+ return $exec;
+}
+
+
+
+sub output_xfce4_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $indent = 0 unless defined $indent;
+
+ if ($indent == 0) {
+ $output .= '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
+ $output .= '<!DOCTYPE xfdesktop-menu [' . "\n";
+ $output .= ' <!ENTITY menu2 SYSTEM "menu2.xml">' . "\n";
+ $output .= ']>' . "\n\n";
+ }
+
+ my $menu_name = $menu->{'PrepName'};
+ my $menu_ico = $menu->{'PrepIcon'};
+ $output .= ' ' x $indent;
+
+ if ($indent == 0) {
+ $output .= "<xfdesktop-menu>\n"
+ }
+ else {
+ $output .= "<menu name=\"" . quote_xml($menu_name) ."\" visible=\"yes\" icon=\"${menu_ico}.png \">\n";
+ }
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ my $exec = prepare_exec_xfce4($desktop->{Exec}, $desktop);
+ my $term = ($desktop->{Terminal} eq '1' || $desktop->{Terminal} eq 'true') ? "yes" : "no";
+ my $ico = $desktop->{'Icon'};
+ $output .= ' ' x $indent;
+ $output .= " <app name=\"" . quote_xml($name) ."\" cmd=\"$exec\" icon=\"$ico\" term=\"$term\"/>\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ $output .= output_xfce4_menu ($entry->{'menu'}, $indent + 1);
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+ $output .= ' ' x $indent;
+
+ if ($indent == 0) {
+ $output .= "</xfdesktop-menu>\n";
+ }
+ else {
+ $output .= "</menu>\n";
+ }
+
+ return $output;
+}
+
+sub output_openbox3_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $output .= '<?xml version="1.0" encoding="UTF-8"?>
+
+<openbox_menu xmlns="http://openbox.org/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://openbox.org/
+ file:///usr/share/openbox/menu.xsd">';
+ $output .= "<menu id=\"xdg\" label=\"xdg\">\n";
+ $output .= output_openbox3_inner_menu ($menu, $indent);
+ $output .= "</menu>\n";
+ $output .= ' <menu id="root-menu" label="Openbox 3">
+ <item label="xterm">
+ <action name="Execute"><execute>xterm</execute></action> </item>
+ <separator />
+ <menu id="KDE Menu" label="KDE Menu" />
+ <separator />
+ <menu id="client-list-menu" />
+ <separator />
+ <menu id="ob-menu" label="openbox3">
+ <item label="ob conf"><action name="Execute"><execute>obconf</execute></action></item>
+ <item label="reconfigure"><action name="Reconfigure" /></item>
+ </menu>
+ <separator />
+ <item label="lock screen"><action name="Execute"><execute>xlock -remote -nice 19 -mode blank -geometry 1x1 -enablesaver</execute></action></item>
+ <separator />
+ <item label="Exit"><action name="Exit" /></item>
+ </menu>';
+ $output .= "</openbox_menu>\n";
+ return $output;
+}
+
+sub output_openbox3_pipe_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $output .= "<openbox_pipe_menu>\n";
+ $output .= output_openbox3_inner_menu ($menu, $indent);
+ $output .= "</openbox_pipe_menu>\n";
+ return $output;
+}
+
+sub output_openbox3_inner_menu ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $indent = 0 unless defined $indent;
+ my $menu_name = $menu->{'PrepName'};
+
+ $output .= ' ' x $indent;
+ $output .= "<menu id=\"" . quote_xml($menu_name) . "\" label=\"".quote_xml($menu_name) . "\">\n";
+# $output .= "<menu label=\"".quote_xml($menu_name) . "\">\n";
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{'PrepName'};
+ my $exec = $desktop->{'PrepExec'};
+
+ $output .= ' ' x $indent;
+ $output .= " <item label=\"". quote_xml($name)."\">\n";
+ $output .= " <action name=\"Execute\"><execute>$exec</execute></action>\n";
+ $output .= " </item>\n";
+ }
+ elsif ($entry->{type} eq 'menu') {
+ $output .= output_openbox3_inner_menu ($entry->{'menu'}, $indent + 1);
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+ $output .= ' ' x $indent;
+ $output .= "</menu> <!-- $menu_name -->\n";
+
+ return $output;
+}
+
+
+sub output_readable ($;$)
+{
+ my ($menu, $indent) = @_;
+
+ my $output = '';
+
+ $indent = 0 unless defined $indent;
+
+ my $menu_name = $menu->{'Name'};
+
+ $output .= "\t" x $indent;
+ $output .= "\"$menu_name\" MENU\n";
+
+
+ foreach my $entry (@{$menu->{'entries'}}) {
+ if ($entry->{type} eq 'desktop') {
+ my $desktop = $entry->{desktop};
+
+ my $name = $desktop->{Name};
+
+ $output .= "\t" x $indent;
+ $output .= "\t\"$name\"\n";
+
+
+ my @v = %$desktop;
+ $output .= "@v\n" if $name eq '';
+ }
+ elsif ($entry->{type} eq 'menu') {
+ $output .= output_readable ($entry->{menu}, $indent + 1);
+ }
+ else {
+ print STDERR "wrong menu entry type: $entry->{type}";
+ }
+
+ }
+
+ return $output;
+}
+
+sub get_root_menu
+{
+ foreach my $dir (split(/:/, $ENV{XDG_CONFIG_DIRS}), "/etc/xdg") {
+ check_file("$dir/menus/applications.menu");
+ return "$dir/menus/applications.menu" if -f "$dir/menus/applications.menu";
+ }
+ return "";
+}
+
+sub get_app_dirs
+{
+ my %used;
+ my $ret = '';
+ my @kde_xdgdata = $> ? split(/:/, `kde-config --path xdgdata-apps`) : ();
+
+ foreach $_ (@kde_xdgdata) {
+ s/\/applications\/*\s*$//;
+ };
+
+ foreach my $d (split(/:/, $ENV{XDG_DATA_DIRS}), @kde_xdgdata, "/usr/share", "/opt/gnome/share") {
+ my $dir = $d;
+ $dir =~ s/\/*$//;
+ next if defined $used{$dir};
+ next if check_file("$dir/applications") ne 'D';
+ $ret .= ':' if $ret ne '';
+ $ret .= "$dir/applications";
+ $used{$dir} = 1;
+ }
+ return $ret;
+}
+
+sub get_desktop_dirs
+{
+ my %used;
+ my $ret = '';
+ foreach my $dir (split(/:/, $ENV{XDG_DATA_DIRS}), "/usr/share", "/opt/kde3/share", "/opt/gnome/share") {
+ next if defined $used{$dir};
+ next if check_file("$dir/desktop-directories") ne 'D';
+ $ret .= ':' if $ret ne '';
+ $ret .= "$dir/desktop-directories";
+ $used{$dir} = 1;
+ }
+ return $ret;
+}
+
+sub get_KDE_legacy_dirs
+{
+ my %used;
+ my @ret;
+ foreach my $d ("/etc/opt/kde3/share/applnk", "/opt/kde3/share/applnk", reverse(split(/:/, `kde-config --path apps`))) {
+ my $dir = $d;
+ chomp $dir;
+ $dir =~ s/\/*$//;
+ next if defined $used{$dir};
+ next if check_file("$dir") ne 'D';
+ $used{$dir} = 1;
+ push @ret, $dir;
+ }
+ return @ret;
+}
+
+sub prepare_language_keys ($)
+{
+ my ($language) = @_;
+
+ my @keys;
+
+ $language =~ s/\.[^@]*//; # remove .ENCODING
+
+ if ($language =~ /^([^_]*)_([^@]*)@(.*)$/) { # LANG_COUNTRY@MODIFIER
+ push @keys, $1 . '_' . $2 . '@' . $3;
+ push @keys, $1 . '_' . $2;
+ push @keys, $1 . '@' . $3;
+ push @keys, $1;
+ }
+ elsif ($language =~ /^([^_]*)_([^@]*)$/) { # LANG_COUNTRY
+ push @keys, $1 . '_' . $2;
+ push @keys, $1;
+ }
+ elsif ($language =~ /^([^_]*)@(.*)$/) { # LANG@MODIFIER
+ push @keys, $1 . '@' . $2;
+ push @keys, $1;
+ }
+ elsif ($language =~ /^([^_@]*)$/) { # LANG
+ push @keys, $1;
+ }
+
+ return @keys;
+}
+
+sub check_cache
+{
+ my $cachedir = $> ? $ENV{HOME} : '/var/lib/menu';
+
+ return unless -d $cachedir;
+
+ $cachedir .= "/.xdg_menu_cache";
+
+ return unless -f "$cachedir/inputs" && -f "$cachedir/output";
+
+ my @st = stat "$cachedir/output";
+ my $ref_time = $st[10]; #ctime
+
+ open(FILE, "<$cachedir/inputs");
+
+ my $num_opts = 0;
+
+ while (<FILE>) {
+ chomp;
+ next if /^\s*$/;
+ next if /^#/;
+
+ if (/^[FD] (.*)$/) {
+ my $file = $1;
+ my @st = stat $file;
+ my $time = $st[10]; #ctime
+
+ if (!defined $time || $time >= $ref_time) {
+# print STDERR "$file: is newer\n";
+ return;
+ }
+ }
+ elsif (/^X (.*)$/) {
+ my $file = $1;
+
+ if (-e $file) {
+# print STDERR "$file: exists\n";
+ return;
+ }
+ }
+ elsif (/^ENV ([^ ]+) (.*)$/) {
+ my $var = $1;
+ my $val = $2;
+
+ if ($ENV{$var} ne $val) {
+# print STDERR "$var: differs\n";
+ return;
+ }
+ }
+ elsif (/^OPT ([0-9]+) (.*)$/) {
+ my $optidx = $1;
+ my $val = $2;
+
+ $num_opts ++;
+ if ($save_ARGV[$optidx] ne $val) {
+# print STDERR "$optidx: differs\n";
+ return;
+ }
+ }
+ elsif (/^CHARSET (.*)$/) {
+ my $charset = $1;
+
+ if ($charset ne langinfo(CODESET)) {
+# print STDERR "charset $charset differs\n";
+ return;
+ }
+ }
+ elsif (/^LANGUAGE (.*)$/) {
+ my $language = $1;
+
+ if ($language ne setlocale(LC_MESSAGES)) {
+# print STDERR "language $language differs\n";
+ return;
+ }
+ }
+ elsif (/^VERSION (.*)$/) {
+ my $v = $1;
+
+ if ($v ne $Version) {
+# print STDERR "Version differs\n";
+ return;
+ }
+ }
+ else {
+ print STDERR "Wrong cache inputs list\n";
+ return;
+ }
+
+
+ }
+
+ return if $num_opts != @save_ARGV;
+
+ open(FILE, "<$cachedir/output") or return;
+
+ print STDERR "Using cached output\n" if $verbose;
+
+ my $buf;
+ while(read(FILE, $buf, 4096)) {
+ print $buf;
+ }
+ close(FILE);
+
+ exit 0;
+}
+
+sub write_cache ($)
+{
+ my ($output) = @_;
+
+ my $cachedir = $> ? $ENV{HOME} : '/var/lib/menu';
+
+ return unless -d $cachedir;
+
+ $cachedir .= "/.xdg_menu_cache";
+
+ mkdir $cachedir;
+ unlink "$cachedir/output";
+
+ open(FILE, ">$cachedir/inputs") or return;
+ print FILE "# this file contains list of inputs xdg_menu\n";
+ print FILE "VERSION $Version\n";
+ print FILE "\n\n";
+ print FILE join("\n", @accessed_files);
+ print FILE "\n\n";
+
+ for (my $i = 0; $i < @save_ARGV; $i++) {
+ print FILE "OPT $i $save_ARGV[$i]\n";
+ }
+
+ print FILE "ENV XDG_CONFIG_DIRS $ENV{XDG_CONFIG_DIRS}\n";
+ print FILE "ENV XDG_DATA_DIRS $ENV{XDG_DATA_DIRS}\n";
+
+ print FILE "CHARSET " . langinfo(CODESET) . "\n";
+ print FILE "LANGUAGE " . setlocale(LC_MESSAGES) . "\n";
+
+ close(FILE);
+ open(FILE, ">$cachedir/output") or return;
+ print FILE $output;
+ close(FILE);
+}
+
+
+check_cache();
+
+use XML::Parser;
+
+$DefaultAppDirs = get_app_dirs();
+$DefaultDirectoryDirs = get_desktop_dirs();
+
+my $root_menu = get_root_menu();
+
+@KDELegacyDirs = get_KDE_legacy_dirs();
+
+$charset = langinfo(CODESET);
+$language = setlocale(LC_MESSAGES);
+
+$root_cmd = "/opt/gnome/bin/gnomesu" if -x '/opt/gnome/bin/gnomesu';
+$root_cmd = "/usr/bin/gnomesu" if -x '/usr/bin/gnomesu';
+$root_cmd = "/opt/kde3/bin/kdesu" if -x '/opt/kde3/bin/kdesu';
+
+my $help;
+
+GetOptions("format=s" => \$format,
+ "fullmenu" => \$fullmenu,
+ "desktop=s" => \$desktop_name,
+ "charset=s" => \$charset,
+ "language=s" => \$language,
+ "root-menu=s" => \$root_menu,
+ "die-on-error" => \$die_on_error,
+ "verbose" => \$verbose,
+ "help" => \$help
+ );
+
+@language_keys = prepare_language_keys($language);
+
+$desktop_name = $format unless defined $desktop_name;
+
+if ($help) {
+ print <<"EOF";
+
+xdg-menu - XDG menus for WindowMaker and other window managers
+ http://freedesktop.org/Standards/menu-spec
+
+
+Usage:
+ xdg_menu [--format <format>] [--desktop <desktop>]
+ [--charset <charset>] [--language <language>]
+ [--root-menu <root-menu>] [--die-on-error]
+ [--fullmenu] [--help]
+
+ format - output format
+ possible formats: WindowMaker, fvwm2, icewm,
+ blackbox, fluxbox, openbox,
+ xfce4, openbox3, openbox3-pipe,
+ mwm, readable
+ default: WindowMaker
+
+ fullmenu - output a full menu and not only a submenu
+
+ desktop - desktop name for NotShowIn and OnlyShowIn
+ default: the same as format
+
+ charset - output charset
+ default: $charset
+
+ language - output language
+ default: $language
+
+ root-menu - location of root menu file
+ default: $root_menu
+
+ die-on-error - abort execution on any error,
+ default: try to continue
+
+ verbose - print debugging information
+
+ help - print this text
+
+EOF
+ exit 0;
+}
+
+
+unless ( -f $root_menu) {
+ print STDERR "Can't find root menu file.\n";
+ exit 1;
+}
+
+my $tree = read_menu($root_menu);
+
+merge_menus($tree);
+move_menus($tree);
+
+my $menu = interpret_root($tree, '');
+
+remove_allocated($menu);
+preprocess_menu($menu);
+remove_empty_menus($menu);
+
+my $output;
+
+if ($format eq 'WindowMaker') {
+
+ $output = output_wmaker_menu($menu)
+}
+elsif ($format eq 'fvwm2') {
+
+ $output = output_fvwm2_menu($menu)
+}
+elsif ($format eq 'icewm') {
+ foreach my $entry (@{$menu->{'entries'}}) {
+
+ if ($entry->{type} eq 'menu') {
+ $output .= output_icewm_menu ($entry->{'menu'});
+ }
+ }
+}
+elsif ($format eq 'xfce4') {
+
+ $output = output_xfce4_menu($menu)
+}
+elsif ($format eq 'blackbox' || ($format eq 'openbox') || ($format eq 'fluxbox') ) {
+ if ($fullmenu) {
+ $output = output_blackbox_menu($menu)
+ }
+ else
+ {
+ $output = output_blackbox_inner_menu($menu)
+ }
+}
+elsif ($format eq 'openbox3') {
+ if ($fullmenu) {
+ $output = output_openbox3_menu($menu)
+ }
+ else
+ {
+ $output = output_openbox3_inner_menu($menu)
+ }
+}
+elsif ($format eq 'openbox3-pipe') {
+
+ $output = output_openbox3_pipe_menu($menu)
+}
+elsif ($format eq 'twm') {
+
+ print STDERR "WARNING: twm does not support umlauts. Parameter --language '' to output plain ASCII.\n" unless $language eq '';
+ $output = output_twm_menu($menu)
+}
+elsif ($format eq 'mwm') {
+
+ $output = output_twm_menu($menu)
+}
+elsif ($format eq 'readable') {
+
+ $output = output_readable($menu)
+}
+else
+{
+ print STDERR "Unknown format $format\n";
+ exit 1;
+}
+
+print $output;
+write_cache($output);
+
+exit 0;
+