OS: Ubuntu Linux DE: LXDE (Lightweight X11 Desktop Environment).
Завдання : причесати " головне меню " , де додатки розподілені інсталяторами по розділах самим довільним і недолугим чином .
Меню KDE або Gnome дуже зручно редагується за допомогою спеціальних додатків, що входять у комплекти відповідних дистрибутивів . Для LXDE поки нічого , крім редагування конфігураційних файлів вручну не придумали. Якщо не заглиблюватися в деталі специфікації XDG ( X Desktop Group ) , що описує властивості і методи побудови оточення "робочого столу " користувача , то для зміни представлення меню слід впливати на три набори конфігураційних файлів:
/etc/xdg/menus/ - безпосередньо опис "головного меню " (у нашому випадку це файл " lxde - applications.menu " ) ; /usr/share/desktop-directories/ - опису розділів ( директорій ) меню; /usr/share/applications/ - опису посилань на додатки ( ярликів ) меню.
Природно , що перед коригуванням конфігураційного файлу ми збережемо його резервну копію. Зрозуміло , що оригінальний файл завжди можна дістати з дистрибутивного набору , але така традиція і краще їй слідувати , ніж забувати про резервування до тих пір, поки не трапиться " упс " :
Насамперед видаляємо з конфігураційного файлу опис розділу " Other " , в який звалюється перелік усього встановленого в системі програмного забезпечення. Для тих хто бавиться щомісячною установкою нових дистрибутивів це може і добре - можна подивитися, чого розробники натикали, аж до дрібних утиліт, але в реальній роботі вивалювання неструктурованого місива з посилань на додатки при кожному русі миші по меню дратує.
Загалом, видаляємо все, що знаходиться між відповідними тегами ( включно ) :
sudo nano /etc/xdg/menus/lxde-applications.menu
.... <! - Other -> <Menu> <Name> Other </ Name > .... </ Menu > <! - End Other -> ....
Можна не видаляти розділ , а наказати йому відображати добірку програм , обумовлену назвою (наприклад : " Other " ) . Правда , я не зустрічав ПО , тегованих в " desktop " -файлі таким чином , але тим цікавіше - раптом виявиться :
sudo nano /etc/xdg/menus/lxde-applications.menu
.... <! - Other -> <Menu> <Name> Other </ Name > <Directory> Lxde - other.directory </ Directory > <Include> <And> <Category> Other </ Category > </ And > </ Include > </ Menu > <! - End Other -> ....
Далі . Мене не влаштовує обмежений набір розділів меню для групування програм.
На жаль , як я зрозумів , зараз генератор меню XDG не працює з довільними категоріями , оперуючи тільки списком зареєстрованих в стандарті . Тому доводиться вибирати з того , що є. Зокрема , мені знадобилися такі категорії для групування додатків:
Geography RemoteAccess
Перш ніж включати нові розділи в список зображуваних меню , потрібно описати їх відповідними " directory " -файлами , що укладаються , у відповідності зі специфікацією , в наступних місцях: "/usr/share/desktop-directories" і "~/.local/share/desktop-directories" .
[ Desktop Entry ] Name = RemoteAccess Name [ uk ] = Віддалений доступ Comment = RemoteAccess menu Comment [ uk ] = Віддалений доступ # Icon = applications - remoteaccess Icon = applications-other Type = Directory
Після того , як описи розділів підготовлені , включимо їх у загальний список , позначивши , при цьому , які категорії програмного забезпечення будуть в них відображатися :
nano /etc/xdg/menus/lxde-applications.menu
.... <! - Geography -> <Menu> <Name> Geography </ Name > <Directory> Lxde - geography.directory </ Directory > <Include> <And> <Category> Geography </ Category > </ And > </ Include > </ Menu > <! - End Geography -> .... <! - RemoteAccess -> <Menu> <Name> RemoteAccess </ Name > <Directory> Lxde - remoteaccess.directory </ Directory > <Include> <And> <Category> RemoteAccess </ Category > </ And > </ Include > </ Menu > <! - End RemoteAccess -> ....
Тепер , коли ми описали достатню кількість додаткових розділів , слід розподілити по них програми . Є простенька програмка написана на Java ( http://sourceforge.net/projects/lxmed/ ) , яка ніби як претендує на звання першого динозавра в ланцюжку еволюції редакторів меню, але вона не вміє створювати додаткових категорій і працює тільки з базовим набором таких ( AudioVideo, Development, Education, Game, Graphics, Network, Office, Settings, System, Utility ) , що для моїх потреб дуже мало. Тому будемо творити руками.
Загалом, для виконання поставленої мети, зручного розподілу додатків по розділах і приховування непотрібних, ніяких надприродних зусиль застосовувати не потрібно. Досить відредагувати "desktop" - файл програми , замінивши категорію або встановивши галку "невідображення" . У відповідності зі специфікацією "desktop" - файли встановлюваних додатків розкладаються по директоріях "~/.local/share/applications" і "/usr/share/applications" .
Для зміни категорії відображення правимо значення параметра "Categories" , перераховуючи "теги" через крапку з комою :
Загалом-то , на цьому все. Як правило , в роботі більше тридцяти -сорока додатків не буває , а з них лише п'ять -десять відображаються не там , де хотілося - б ; думаю , що пробігтися по такому невеличкому кількості конфігураційних файлів , розташованих в одному місці , не складе труднощів.
Меню перемальовується і швидко реагує на зміни "кеша" з кожним його запитом, так що ніяких команд перечитування конфігурації вводити не потрібно.