LINUX.ORG.RU

Зачем?

Это ж опенсорц - перепиши кусок опенбокса, заставив его читать меню из второго файла. Ъ!

Zhbert ★★★★★
()

Не знаю как опенбокс, а флаксбокс перечитывает конфиг меню на лету. Т.е. только поменял и сохранил его, как уже в меню видны изменения. Посему как враиант - бекапишь основной конфиг, кладя его рядом под другим названием. Когда нужно сгенерить конфиг скриптом, генеришь его в тот, который уже есть, изменяя его так, как тебе нужно, меню, соответственно, изменяется. Потом, когда надобность в этом отпадает, заменяешь конфиг на бекапный. Профит.

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

Я хочу прописать в основном конфиге <menu id=«blablabla-menu»/>, а содержимое этого меню будет считываться из другого конфига.

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

Я уже как-то задавал здесь подобный вопрос (про rc.xml), но решения предложено не было. include по стандартам не сработал, но можешь попробовать — вдруг я криво делал %)

GotF ★★★★★
()

Там искоропки динамическое меню, в инете сотни примеров

xorik ★★★★★
()

Точно такой же вопрос как и у автора. По ходу придется редактировать сам menu.xml. Вот сейчас думаю чем. Смотрю в сторону питоновских модулей для xml.

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

В итоге я написал скрипт, который из файла вставляет текст в menu.xml

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

Нашел! С помощью openbox pipe menu делается все так: создается менюшка с

<menu execute="~/script.py" id="id-menu" label="foo">
В скрипте в stdout послается, то, что нужно отобразить в меню, например:

print '<openbox_pipe_menu>' #тег начала сгенерированного мею
print "<separator label='TEST' />" # то, что вы прописали бы в menu.xml
print '</openbox_pipe_menu>' #тег конца

Получаем разделитель с надписью «TEST». Все проще простого оказалось :)

Писать скрипт, естественно, можно на чем угодно.

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

Про pipe-menu я знаю, но это немного не то, что мне нужно. Нет смысла каждый раз генерировать одно и тоже меню, которое изменяется очень редко.

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

Мысль про pipe-меню закончилась следующим:

Я просто вызываю скрипт следующего содержания:

#!/bin/bash
echo '<openbox_pipe_menu>'
cat ~/.config/openbox/second-menu.xml
echo '</openbox_pipe_menu>'

Несколько костыльно конечно, но работает, и не приходится генерировать меню с каждым вызовом.

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