10 июля 2011 г.

Меню для compiz


В очередной раз настроила себе сессию с 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 (обычно там всё интуитивно-понятно):

  1. Модуль Команды (раздел Общие) - тут во вкладке Команды вписываем compiz-deskmenu в первую строку (если не занята)
  2. Тут же, но в следующей вкладке - Комбинации клавиш - назначаем желаемое сочетание на выполнение соответствующей команды
  3. В разделе Рабочий стол модуль Переключатель рабочих мест - там в последней вкладке Desktop-based Viewport Switching исправить значение строки Plugin for initiate action на commands (не помню, что там стояло изначально).
  4. Там же значение строки ниже 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) программы или подменю поставить перед какой-либо буквой символ подчёркивания, то в самом меню эта буква в названии будет подчёркнута, а самое главное, что можно будет выбрать этот пункт нажав на клавишу с этой буквой на клавиатуре. В образце меню есть такие пункты.

5 комментариев:

  1. Классно бы на видео посмотреть, спасибо, красиво

    ОтветитьУдалить
  2. так же есть форк - compizboxmenu, доступен в РРА https://launchpad.net/~alex-p/+archive/test или в основном РРА alex_p, если пакет из теста переехал... Для пользователей unity самое оно... Хотя чистый fluxbox лучше. IMHO

    ОтветитьУдалить
  3. А какое именно видео? просто как менюшка открывается? мало ж выйдет. записать-то не проблема.

    gimp нет потому что не пользуюсь :) с задачами обрезать картинку справляюсь другими инструментами.

    ОтветитьУдалить
  4. paulus, я ведь написала и про этот форк тоже.

    ОтветитьУдалить