Автодобавление приложений в меню OpenBox (а-ля Debian Menu (xdg-menu))

Модератор: Модераторы разделов

Lorence
Сообщения: 34
ОС: ALT Linux 5.0

Автодобавление приложений в меню OpenBox

Сообщение Lorence »

Доброго времени суток!
В некоторых дистрибутивах использующих OpenBox как рабочее окружение по умолчанию устанавливаемые приложения автоматически добавляются в меню, у себя такого реализовать не получилось к сожалению.
Конечно, можно каждый раз добавлять ручками, но этот факт остается досадным. =)
Знаю про DebianMenu (xdg-menu вроде), но хотелось бы без перехода через "DebianMenu"

Кто знает как реализовать данный функционал, подскажите пожалуйста =)
Samsung NP-N110: Ubuntu Netbook Remix 10.10
Спасибо сказали:

Lorence
Сообщения: 34
ОС: ALT Linux 5.0

Re: Автодобавление приложений в меню OpenBox

Сообщение Lorence »

Рыская по различным ВиКи-проектам нарвался вот на это: Openbox-menu

Во время компиляции терминал выдал следующее:

Код: Выделить всё

:~/openbox-menu-0.3.6.6$ sudo make
[sudo] password for lorence:
gcc `pkg-config --libs glib-2.0 gtk+-2.0 libmenu-cache` menu.o openbox-generator.o -o openbox-menu
menu.o: In function `display_menu':
/home/lorence/openbox-menu-0.3.6.6/menu.c:144: undefined reference to `menu_cache_get_root_dir'
/home/lorence/openbox-menu-0.3.6.6/menu.c:147: undefined reference to `g_log'
/home/lorence/openbox-menu-0.3.6.6/menu.c:153: undefined reference to `menu_cache_dir_get_children'
/home/lorence/openbox-menu-0.3.6.6/menu.c:154: undefined reference to `g_slist_length'
/home/lorence/openbox-menu-0.3.6.6/menu.c:157: undefined reference to `g_print'
menu.o: In function `g_string_append_c_inline':
/usr/include/glib-2.0/glib/gstring.h:136: undefined reference to `g_string_insert_c'
menu.o: In function `sanitize':
/home/lorence/openbox-menu-0.3.6.6/menu.c:40: undefined reference to `g_string_sized_new'
/home/lorence/openbox-menu-0.3.6.6/menu.c:47: undefined reference to `g_string_append'
/home/lorence/openbox-menu-0.3.6.6/menu.c:50: undefined reference to `g_string_append'
/home/lorence/openbox-menu-0.3.6.6/menu.c:53: undefined reference to `g_string_append'
/home/lorence/openbox-menu-0.3.6.6/menu.c:56: undefined reference to `g_string_append'
menu.o: In function `g_string_append_c_inline':
/usr/include/glib-2.0/glib/gstring.h:136: undefined reference to `g_string_insert_c'
menu.o: In function `sanitize':
/home/lorence/openbox-menu-0.3.6.6/menu.c:62: undefined reference to `g_string_free'
menu.o: In function `clean_exec':
/home/lorence/openbox-menu-0.3.6.6/menu.c:70: undefined reference to `g_string_sized_new'
menu.o: In function `g_string_append_c_inline':
/usr/include/glib-2.0/glib/gstring.h:136: undefined reference to `g_string_insert_c'
menu.o: In function `clean_exec':
/home/lorence/openbox-menu-0.3.6.6/menu.c:95: undefined reference to `g_string_free'
menu.o: In function `app_is_visible':
/home/lorence/openbox-menu-0.3.6.6/menu.c:102: undefined reference to `menu_cache_app_get_show_flags'
/home/lorence/openbox-menu-0.3.6.6/menu.c:107: undefined reference to `menu_cache_app_get_is_visible'
menu.o: In function `get_item_icon_path':
/home/lorence/openbox-menu-0.3.6.6/menu.c:118: undefined reference to `menu_cache_item_get_icon'
/home/lorence/openbox-menu-0.3.6.6/menu.c:119: undefined reference to `g_return_if_fail_warning'
/home/lorence/openbox-menu-0.3.6.6/menu.c:121: undefined reference to `g_path_is_absolute'
/home/lorence/openbox-menu-0.3.6.6/menu.c:122: undefined reference to `g_strdup'
/home/lorence/openbox-menu-0.3.6.6/menu.c:129: undefined reference to `gtk_icon_theme_lookup_icon'
/home/lorence/openbox-menu-0.3.6.6/menu.c:130: undefined reference to `g_free'
/home/lorence/openbox-menu-0.3.6.6/menu.c:133: undefined reference to `gtk_icon_theme_lookup_icon'
/home/lorence/openbox-menu-0.3.6.6/menu.c:135: undefined reference to `gtk_icon_info_get_filename'
/home/lorence/openbox-menu-0.3.6.6/menu.c:135: undefined reference to `g_strdup'
/home/lorence/openbox-menu-0.3.6.6/menu.c:136: undefined reference to `gtk_icon_info_free'
menu.o: In function `main':
/home/lorence/openbox-menu-0.3.6.6/menu.c:184: undefined reference to `g_option_context_new'
/home/lorence/openbox-menu-0.3.6.6/menu.c:185: undefined reference to `g_option_context_set_help_enabled'
/home/lorence/openbox-menu-0.3.6.6/menu.c:186: undefined reference to `g_option_context_add_main_entries'
/home/lorence/openbox-menu-0.3.6.6/menu.c:188: undefined reference to `g_option_context_parse'
/home/lorence/openbox-menu-0.3.6.6/menu.c:191: undefined reference to `g_option_context_free'
/home/lorence/openbox-menu-0.3.6.6/menu.c:205: undefined reference to `gtk_init'
/home/lorence/openbox-menu-0.3.6.6/menu.c:206: undefined reference to `gdk_init'
/home/lorence/openbox-menu-0.3.6.6/menu.c:207: undefined reference to `gtk_icon_theme_get_default'
/home/lorence/openbox-menu-0.3.6.6/menu.c:210: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/menu.c:214: undefined reference to `menu_cache_lookup_sync'
/home/lorence/openbox-menu-0.3.6.6/menu.c:217: undefined reference to `g_log'
/home/lorence/openbox-menu-0.3.6.6/menu.c:221: undefined reference to `menu_cache_add_reload_notify'
/home/lorence/openbox-menu-0.3.6.6/menu.c:222: undefined reference to `menu_cache_reload'
/home/lorence/openbox-menu-0.3.6.6/menu.c:223: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/menu.c:224: undefined reference to `menu_cache_unref'
openbox-generator.o: In function `generate_openbox_menu':
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:95: undefined reference to `menu_cache_dir_get_children'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:96: undefined reference to `menu_cache_item_get_type'
openbox-generator.o: In function `menu_directory':
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:33: undefined reference to `menu_cache_item_get_id'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:34: undefined reference to `menu_cache_item_get_name'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:38: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:43: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:46: undefined reference to `g_free'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:49: undefined reference to `g_free'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:50: undefined reference to `g_free'
openbox-generator.o: In function `generate_openbox_menu':
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:101: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:105: undefined reference to `g_print'
openbox-generator.o: In function `menu_application':
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:59: undefined reference to `menu_cache_app_get_use_terminal'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:62: undefined reference to `menu_cache_item_get_comment'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:65: undefined reference to `menu_cache_item_get_name'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:67: undefined reference to `menu_cache_app_get_exec'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:70: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:73: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:74: undefined reference to `g_free'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:77: undefined reference to `g_print'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:84: undefined reference to `g_free'
/home/lorence/openbox-menu-0.3.6.6/openbox-generator.c:85: undefined reference to `g_free'
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [openbox-menu] Ошибка 1
lorence@ubuntu:~/openbox-menu-0.3.6.6$


Почему такой вывод получился, так и не понял О_о
Плюс, сколько бы не читал описание скрипта на странице разраба, так и не понял что нужно делать дальше после компиляции (в силу слабых знаний буржуйского)

Буду признателен за помощь в разрешении данного вопроса.
Samsung NP-N110: Ubuntu Netbook Remix 10.10
Спасибо сказали:

Lorence
Сообщения: 34
ОС: ALT Linux 5.0

Re: Автодобавление приложений в меню OpenBox

Сообщение Lorence »

Похоже, форум мертв.. либо я настолько слепой что не вижу явного решения своей проблемы акромя: "ручками"..
Samsung NP-N110: Ubuntu Netbook Remix 10.10
Спасибо сказали:

nill
Сообщения: 146

Re: Автодобавление приложений в меню OpenBox

Сообщение nill »

Lorence писал(а):
02.05.2012 17:32
... но хотелось бы без перехода через "DebianMenu"

Вот этот момент я не понял. Вы о чём?

Lorence писал(а):
02.05.2012 20:26
Плюс, сколько бы не читал описание скрипта на странице разраба, так и не понял что нужно делать дальше после компиляции (в силу слабых знаний буржуйского)

Бинарник нужно положить в удобный каталог и добавить в menu.xml нечто такое:

Код: Выделить всё

<menu id="desktop-app-menu" label="Applications" execute="your_path/openbox-menu"/>

Смотрите menu.xml автора, ссылка на него есть в п.5.2.
Ошибки компиляции, похоже, вследствие отсутствующих пакетов. Нужно установить соответствующие пакеты с постфиксами -dev (libglib2.0-dev и т.д. или как-то так).

И ещё, скриншот на страничке автора похож на результат работы скрипта python xdg menu script, который мне попадался где-то на wiki.archlinux.org. Попробуйте его.
Спасибо сказали:

Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Автодобавление приложений в меню OpenBox

Сообщение broom »

Там же на вики Arch Linux описана куча методов генерации меню:
https://wiki.archlinux.org/index.php/Openbox#Menus
Просто желающих переводить (ввиду "слабых знаний буржуйского") не нашлось.
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:

nill
Сообщения: 146

Re: Автодобавление приложений в меню OpenBox

Сообщение nill »

broom писал(а):
11.05.2012 17:10
Просто желающих переводить (ввиду "слабых знаний буржуйского") не нашлось.

Не-не, всё есть (:
https://wiki.archlinux.org/index.php/Openbo....B5.D0.BD.D1.8E
Спасибо сказали: