Дано: Понравился мне LXDE вот хоть стреляйте, легенький, ничего лишнего ... панелька как панелька, кнопофки как кнопофки, и кушать не просят и местов много не занимают ;) Одним словом практически любовь с первого взгляда. Но задался вопросом как бы снести в панель запуска плагинчик для отображения нужной мне директории (директория книг).
Решение:
Рисовалось два решения либо писать апликейшн (/usr/share/applications), но гибкости нет, открывается отдельным окном ... либо …
Второй вариант использовать плагин самой LXDE panel'и, а именно dirmenu.
Но вот незадача, в настройках панели к данному плагину нет возможности конфигурации онного, уважаемый pcman возможно не успел написать данную часть для конфига данного плагинчика. С учетом что у него несколько разработок под LXDE то данный вариант более правдоподобен. (как оказалось позже, данный момент заложен, но не воспроизведен)
И что же получается?! по умолчанию данный плагин высвечивает содержимое домашней директории пользователя ...
Для меня это трагедия! Так как до книг еще бежать и бежать по путям ... симлинки плодить не вариант ...
Не долго размышляя ринулся в поиски конфига панели, долго искать не пришлось (~/.config/lxpanel/LXDE/panels/panel) и царапнуло глаз, что у других плагинов имелись настройки типа :
Plugin {
type = wincmd
Config {
Button1=iconify
Button2=shade
}
}
А мой герой-плагин как был одинешенек в поле так и оставался так.
Как ни крутил штатными гуй-утилитами настройки панели ни слова не говорилась о заложенном потенциале плагинчика dirmenu … Глянем еще раз в конфиг, что же мы имеем:
Plugin {
type = dirmenu
Config {
}
}
Первое на ум пришло (догадками) подписать туда что нибудь типа:
path=~/длинный_путь/Books/Coding/
или
dir=~/длинный_путь/Books/Coding/
или
другие варианты комбинирования фантазии …
эффекта нуль ... как открывался список домашней так и открывается (хотя сам виноват, поспешил немного, но чуть позже об этом)
Оставалось найти исходники сия чуда. Отдельно искать их? не реально, по догадке в src lxde был найден примечательный файлик dirmenu.c, как замечательно, и там то были найдены ответы на поставленные вопросы, а возможно ли?!
ВОЗМОЖНО! Глянем, то что собственно и искал:
if (!g_ascii_strcasecmp(s.t[0], "image")) {
dm->image = g_strdup( s.t[1] );
fname = expand_tilda(s.t[1]);
}
else if (!g_ascii_strcasecmp(s.t[0], "path")) {
dm->path = g_strdup( s.t[1] );
}
else if (!g_ascii_strcasecmp(s.t[0], "name")) {
dm->name = g_strdup( s.t[1] );
}
else {
ERR( "dirmenu: unknown var %s\n", s.t[0]);
goto error;
}
Вот и замечательно =) имеем три значения конфига:
- image
- name
- path
уверен что каждый из них описывать смыла не имеет.
Тогда почему ничего не получилось когда "предугадывал" возможное значение
path=~/длинный_путь/Books/Coding/ ... спросите =) Да всё проще чем думается, панель уже была инициализированная, и что бы она подхватила настройки нужно перестартануть сессию Х.
В итоге получаем следующий конф для данного плагинчика:
Plugin {
type = dirmenu
Config {
image=/usr/share/icons/addressbook_section.png
path=~/длинный_путь/Books/Coding/
name=Coding
}
}
Примечание: Малюсенькое примечание, не надо плодить в папке ~/.config/lxpanel/LXDE/panels/ всяких OLD и BAK версий, так как они будут считываться LXDE как отдельные панельки, не взирая на ваши расширения, и желаемого результата Вы не увидите из за наложения нескольких панелей друг на друга. Удачи.
И еще одно, когда снова воспользуетесь гуевым конфигом панели, есть вероятность что конфиги данных плагинов (речь про dirname) в панелях затрутся …
Комментариев нет:
Отправить комментарий