LINUX.ORG.RU

[icewm] Gentoo и главное меню

 


0

1

Кто знает, как сделать нормальное меню в icewm?
Вручную писать не катит (хоть и Ъ), а автоматом не делается (даже с USE=«gnome»).
Генераторы меню (mmaker и denu) не работают как надо.

★★★★★

А что, этого /usr/share/X11/icewm/menu файла нет? Я просто копировал себе в ~/.icewm этот общесистемный файл, а потом вручную «рихтовал».

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

В генте это /usr/share/icewm/menu
Но! Там есть строчка

[code]icewm-menu-gnome2 --list /usr/share/desktop-directories/[/code]

Только эти directory файлы пустые. И соответственно меню пустое получается.

devl547 ★★★★★
() автор топика

Кто знает, как сделать нормальное меню в icewm?

Вручную писать не катит (хоть и Ъ), а автоматом не делается (даже с USE=«gnome»).

Насчет поддержки гномячих менюшек не могу ничего сказать, так как я их не использую, то есть поддержку GNOME не устанавливал. Не хочу сейчас бросаться проверять. Есть еще один механизм — система menu (пакет menu в Debian). Пишется специальный скрипт в /etc/menu-method, который и гененирует меню для конкретной среды в том виде, который она поймет. Для Debian menu такой скрипт написан сопровождающим. Вот его вид:

/etc/menu-methods/icewm-common:

#!/usr/bin/install-menu

compat="menu-1"

!include menu.h

outputencoding="LOCALE"

function iconordash()=ifelse(icon(),icon(),"-")
function q($com)=esc($com,"\"")

supported
  x11=  "  prog    \"" q(title()) "\" " iconordash() " /bin/sh -c \"" q($command) "\"\n"
  text= "  prog    \"" q(title()) "\" " iconordash() " /bin/sh -c \"" q(term())   "\"\n"
  wm=   "  restart \"" q(title()) "\" " iconordash() " /bin/sh -c \"" q($command) "\"\n"
endsupported

startmenu=ifneq($title,"Debian menu",ifroot("menu \"" q(title()) "\" folder {\n","menu \"" q(title()) "\" folder {\n"))
endmenu=ifneq($title,"Debian menu","}\n")
genmenu="programs"
submenutitle=""
#submenutitle="  menu \"" $title "\" folder {\n"
preoutput="\n"
rootprefix="/etc/X11/icewm/"
mainmenutitle="Debian menu"
treewalk="(M)"
userprefix=".icewm"

За исходные данные берутся файлы формата menu, которые находятся в Debian в /usr/share/menu. Но если пакет не поставляет такого файла, то в меню программа не появится. Этот скрипт генерит файл ~/.icewm/programs у пользователя и в /etc/X11/icewm/. Файл programs с готовой менюшкой инклудится в /usr/share/icewm/menu:

menufile Programs folder programs

Кое-какая ссылочка Судя по всему, стандарт менюшек freedesktop.org должен работать, если у кого-то работает. Кстати, а какие опции включает твой USE=Gnome? В icewm есть две опции в configure:

--enable-menus-gnome1   Display GNOME 1 menus
--enable-menus-gnome2   Display GNOME 2 menus
Zubok ★★★★★
()

Слушай, я вот чего подумал. Может, надо поставить какие-то пакеты из xdg? В Debian такие есть, но у меня их нет в системе:

p   extra-xdg-menus                                                  - Extra menu categories for applications under GNOME and KDE                
p   menu-xdg                                                         - freedesktop.org menu compliant window manager scripts                     
p   python-xdg                                                       - A python library to access freedesktop.org standards                      
p   xdg-user-dirs                                                    - tool to manage well known user directories                                
p   xdg-user-dirs-gtk                                                - tool to manage well known user directories (Gtk extension)                
i A xdg-utils                                                        - средства интеграции приложений в рабочую среду    
Zubok ★★★★★
()

Ага, в Debian надо поставить пакет gnome-menus. Тогда категории в /usr/share/desktop-directories появятся. Так что ищи пакет в Gentoo, который поставляет эти файлы. В Debian список файлов из gnome-menus такой:

/etc/gnome/menus.blacklist
/etc/xdg/menus/gnome-applications.menu
/etc/xdg/menus/gnome-settings.menu
/usr/bin/gmenu-simple-editor
/usr/sbin/gnome-menus-blacklist
/usr/share/applications/gmenu-simple-editor.desktop
/usr/share/desktop-directories/ActionGames.directory
/usr/share/desktop-directories/AdventureGames.directory
/usr/share/desktop-directories/ArcadeGames.directory
/usr/share/desktop-directories/AudioVideo.directory
/usr/share/desktop-directories/BlocksGames.directory
/usr/share/desktop-directories/BoardGames.directory
/usr/share/desktop-directories/CardGames.directory
/usr/share/desktop-directories/Debian.directory
/usr/share/desktop-directories/Development.directory
/usr/share/desktop-directories/Education.directory
/usr/share/desktop-directories/Game.directory
/usr/share/desktop-directories/GnomeScience.directory
/usr/share/desktop-directories/Graphics.directory
/usr/share/desktop-directories/Hardware.directory
/usr/share/desktop-directories/InternetAndNetwork.directory
/usr/share/desktop-directories/KidsGames.directory
/usr/share/desktop-directories/LogicGames.directory
/usr/share/desktop-directories/LookAndFeel.directory
/usr/share/desktop-directories/Network.directory
/usr/share/desktop-directories/Office.directory
/usr/share/desktop-directories/Personal.directory
/usr/share/desktop-directories/RolePlayingGames.directory
/usr/share/desktop-directories/Settings-System.directory
/usr/share/desktop-directories/Settings.directory
/usr/share/desktop-directories/SimulationGames.directory
/usr/share/desktop-directories/SportsGames.directory
/usr/share/desktop-directories/StrategyGames.directory
/usr/share/desktop-directories/System-Tools.directory
/usr/share/desktop-directories/System.directory
/usr/share/desktop-directories/Utility-Accessibility.directory
/usr/share/desktop-directories/Utility.directory
/usr/share/desktop-directories/X-GNOME-Menu-Applications.directory
/usr/share/desktop-directories/X-GNOME-Menu-System.directory
/usr/share/desktop-directories/X-GNOME-Other.directory
...
файлы локализаций поскипаны
Zubok ★★★★★
()
Ответ на: комментарий от Zubok

А вот XFCE свою разбивку меню имеет (пакет xfdesktop4-data):

/usr/share/desktop-directories/xfce-accessories.directory
/usr/share/desktop-directories/xfce-development.directory
/usr/share/desktop-directories/xfce-education.directory
/usr/share/desktop-directories/xfce-games.directory
/usr/share/desktop-directories/xfce-graphics.directory
/usr/share/desktop-directories/xfce-multimedia.directory
/usr/share/desktop-directories/xfce-network.directory
/usr/share/desktop-directories/xfce-office.directory
/usr/share/desktop-directories/xfce-other.directory
/usr/share/desktop-directories/xfce-screensavers.directory
/usr/share/desktop-directories/xfce-settings.directory
/usr/share/desktop-directories/xfce-system.directory
...
skipped
Zubok ★★★★★
()

Сейчас проверил

Метод с update-menus работает. Можно закинуть в /etc/rc.local. Но мне и руками не в падлу запустить. Меню генерит с icon. mmaker делал меню без оных.

kraftello ★★★★★
()

ln -s /var/cache/xdg-menu/icewm/programs ~/.icewm/programs

Единственный затык - некогда разбираться с кодировкой в заголовках подменю. Поэтому # LANG=C update-menus Не знаю, где в джинту xdg. В арче

http://archlinux-stuff.googlecode.com/files/arch-xdg-menu-0.7.4.tar.gz

Может есть и способ с menu-gnome2. Но я использую icewm 1.3.7-3 без поддержки гнома. Можно собрать с --with-gnome-menus. Но этот метод проще, значит лучше.

kraftello ★★★★★
()
Ответ на: комментарий от devl547

Все, решил. Пришлось накатывать парочку изменений:

1. Оно не вставляло ключ folder в конфиг, поэтому icewm не видел менюхи.
2. Добавил еще папки для поиска иконок.

devl547 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.