В очередной раз настроила себе сессию с compiz-standalone, немножко её попилила. Подумала, что неплохо бы было организовать в таком рабочем окружении меню программ. Можно, конечно, ещё использовать какую-нибудь панель, у которой есть меню (lxpanel, cairo-dock, awn, gnome-panel, xfce-panel), а можно организовать не привязанное ни к чему меню, по типу того, что изначально есть, например, в openbox и fluxbox.
Задача уже такая ставилась и была решена, остаётся только настроить и использовать. Я имею в виду программу compiz-deskmenu.
Для ArchLinux всё просто — пакет есть в AUR’е. Для других дистрибутивов, возможно, придётся собирать из исходников (даже для ubuntu на ланчпаде репозитория я не нашла), как-то так:
git clone git://anongit.compiz-fusion.org/users/crdlb/compiz-deskmenu cd compiz-deskmenu make sudo make install |
Какие пакеты должны быть при этом установлены, указано в readme.
Тем или иным образом программа будет установлена, и остаётся её настроить. Инструкции, как это сделать, кстати, появляются в консоли после установки.
Для компиза настройки производятся в утилите ccsm (обычно там всё интуитивно-понятно):
- Модуль Команды (раздел Общие) — тут во вкладке Команды вписываем compiz-deskmenu в первую строку (если не занята)
- Тут же, но в следующей вкладке — Комбинации клавиш — назначаем желаемое сочетание на выполнение соответствующей команды
- В разделе Рабочий стол модуль Переключатель рабочих мест — там в последней вкладке Desktop-based Viewport Switching исправить значение строки Plugin for initiate action на commands (не помню, что там стояло изначально).
- Там же значение строки ниже Action name for initiate исправить на run_command0_key (если команда была назначенная нулевая в соответствующем модуле ранее).
Последние настройки заставят открываться меню по правому клику на рабочем столе, именно как делается в средах вроде openbox. Естественно сами модули в ccsm должны быть включены — отмечены галкой.
Ещё можно назначить команду на «грань рабочего стола» — то есть меню будет выскакивать при наведении курсора на сторону или угол рабочего стола. Делается это в модуле Команды в третьей вкладке Закрепление грани. Я назначила на оба верхних угла.
Поначалу ещё настроила появление меню на среднюю клавишу мыши там же во вкладке Комбинации клавиш, но привыкла так закрывать вкладки в программах и отменила (но можно добавить к этому одну из четырёх клавиш (Ctrl, Atl, Shift, Win и их сочетания) да ещё и привязку к грани рабочего стола). В общем стоит поковырять настройки, попробовать и подумать, как будет удобнее.
Естественно, что так как меню это вызывается простой командой, легко можно назначить его и любой кнопке на панели, например, в частности я сделала таким образом меню на панели awn, использовав плагин Simple Launcher.
Правда, у меня проявляется какой-то странный глюк: клавиатурное сочетание и правый клик по рабочему столу работают только в двойном режиме. При этом рядом назначенная другая команда работает прекрасно с одного раза без нареканий. Но если не срабатывает, попробуйте понажимать быстро несколько раз подряд — пока не знаю, в чём именно тут может быть дело.
Изначально меню не содержит установленных программ, а при вызове показывает просто болванку c парой программ, подменю и ещё парой пунктов, в том числе на редактор меню.
Редактировать вручную достаточно легко, но есть способ добавить всё разом. Как для автоматического формирования меню, напирмер, openbox, можно использовать menumaker, так и для этого меню, только использовать надо модификацию menumaker-compiz (есть в AUR’е).
И как и для простого menumaker, тут тоже нужно выполнить команду типа:
mmaker -vf Compiz-deskmenu |
Вот теперь тут есть всё, что есть в системе:
Ну только без иконок. Их уже придётся добавлять вручную.
Впрочем встроенный редактор вполне прост и удобен в использовании:
А для добавления иконки, зачастую достаточно прописать в соответствующую строку то же, что в строке с запускающей командой. правда, не всегда:
Ну в любом случае это лучше и быстрее, чем вбивать всё руками. Правда после установки новой программы, придётся её уже добавлять вручную, либо делать время от времени формирование меню с помощью menumaker-compiz, теряя при этом все сделанные вручную изменения.
В общем лично меня устроило compiz-deskmenu, но для порядка я посмотрела его форк — compiz-boxmenu. Опять же пакет есть в AUR’е, но можно и собрать.
Для пользователя, пожалуй, главное отличие в том, что помимо подменю с переходом на другие рабочие столы (его видно на скриншотах), в этом меню присутствуют ещё подменю со списком всех открытых окон и недавно открывавшимися документами.
В остальном всё очень и очень похоже — такой же редактор и начальная болванка, так же надо поменять настройки оконного менеджера.
А ещё в отличии от предыдущего, эта программа требует демона для своей работы — compiz-boxmenu-daemon, и его, скорее всего, придётся прописать в /etc/rc.conf.
Лично у меня с этим меню возникли проблемы: при наведении на пункты Windows или Viewports, когда должны раскрываться соответствующие списки, программа просто зависает и помогает только убить процесс compiz-boxmenu-daemon.
Вполне возможно, это решаемо, но так как мне не нужны эти подменю, а отличий в программах немного, я остановилась на первом. А ещё можно просто убрать проблемные подпункты.
Ещё по поводу редактирования менюшек несколько хитростей.
Во-первых menumaker-compiz работает только с compiz-deskmenu, а с compiz-boxmenu не работает. Но файл, сформированный для первого прекрасно подойдёт для второго. Для этого нужно либо скопировать этот файл в соответствующую директорию, либо запустить меню с опцией -m и следом за ней путь к нужному файлу.
Теперь что касается файлов. Для обеих программ они практически одинаковы и лежат в ~/.config/compiz/deskmenu/menu.xml и ~/.config/compiz/boxmenu/menu.xml соответственно. Болванки этих файлов находятся в /etc/xdg/compiz/deskmenu/menu.xml и /etc/xdg/compiz/deskmenu/menu.xml.
Кстати, если после нескольких установок и удалений программ не хочется исправлять меню вручную, а терять свои корректировки тоже жалко, можно сделать бэкап файла, затем пересоздать меню с помощью mmaker, ну а затем сравить получившиеся два файла — таким образом будет наглядно видно, какие пункты добавились и можно будет их просто скопировать из нового файла.
Файлы имеют простую структуру и в общем-то можно прописать в них всё, что нужно и без графического редактора. Думаю, по примерам, всё и так понятно. И есть ещё одна маленькая особенность: если в имени (name) программы или подменю поставить перед какой-либо буквой символ подчёркивания, то в самом меню эта буква в названии будет подчёркнута, а самое главное, что можно будет выбрать этот пункт нажав на клавишу с этой буквой на клавиатуре. В образце меню есть такие пункты.