21 сентября 2011 г.

Маленькое gtk-меню «mygtkmenu»

Забавный маленький проект кастомного "стандалонного" меню. Автор на сайте проекта пишет, что мол раньше он вручную пытался менять меню гнома, а при обновлении дистрибутива всё портилось. Поэтому он захотел и написал сам меню, которое формируется раз и остаётся неизменным вне зависимости от каких-либо обновлений, то есть полностью контролируется пользователем. Если кому-то ещё интересен такой подход, то и утилита должна показаться стоящей внимания.

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

На сайте проекта можно скачать программу, а я, как обычно, установлю из AUR'а.
Сразу после установки ничего само не заработает. Нужно создать конфигурационный файл, хотя бы один. Образец с разъяснениями есть в файле /etc/mygtkmenu.conf. Собственный файл можно создать где угодно и назвать как угодно — всё равно путь к этому файлу нужно указывать в команде запуска меню.
Скажем, создаём конфиг ~/.config/mygtkmenu/myGtkMenu, значит меню с именно этой конфигурацией будем запускать командой mygtkmenu .config/mygtkmenu/myGtkMenu (ну это для текущего пользователя, а так можно и полный путь к файлу прописать). Соответственно можно сделать таких файлов сколько угодно и каждую конфигруацию запускать своей командой.

Пример конфигурации меню со скриншота:

iconsize = 16

item = Menu
cmd = " "
icon = /usr/share/icons/Faenza/places/48/archlinux-logo.png

SEPARATOR

item = _Firefox
cmd = firefox
icon = /usr/share/icons/Faenza/apps/48/firefox.png

item = m_edit
cmd = medit
icon = /usr/share/icons/hicolor/48x48/apps/medit.png

item = Lx_terminal
cmd = lxterminal
icon = /usr/share/icons/Faenza/apps/16/terminal.png

SEPARATOR

Submenu = Multimedia
	icon = /usr/share/icons/Faenza/categories/48/applications-multimedia.png

	item = Deadbeef
	cmd = deadbeef
	icon = /usr/share/icons/Faenza/apps/48/deadbeef.png

	item = Vlc
	cmd = vlc
	icon = /usr/share/icons/Faenza/apps/48/vlc.png

Submenu = Internet
	icon = /usr/share/icons/Faenza/categories/48/applications-internet.png

	Submenu = Browsers
		icon = /usr/share/icons/Faenza/apps/48/browser.png

		item = Firefox
		cmd = firefox
		icon = /usr/share/icons/Faenza/apps/48/firefox.png

		item = Opera
		cmd = opera
		icon = /usr/share/icons/Faenza/apps/48/opera.png

		item = Chromium
		cmd = chromium
		icon = /usr/share/icons/Faenza/apps/48/chromium.png

	Submenu = Messengers
		icon = /usr/share/icons/Faenza/apps/48/xchat.png

		item = Skype
		cmd = skype
		icon = /usr/share/icons/Faenza/apps/48/skype.png

		item = Pidgin
		cmd = pidgin
		icon = /usr/share/icons/Faenza/apps/48/pidgin.png

		item = Psi+
		cmd = psi-plus
		icon = /usr/share/icons/hicolor/48x48/apps/psi-plus.png

Submenu = Games
	icon = /usr/share/icons/Faenza/categories/48/applications-games.png

	item = World of Warcraft
	cmd = wine /home/opossum/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Wow.exe -opengl
	icon = /home/opossum/.local/share/icons/hicolor/48x48/apps/0B22_Launcher.0.png

Теперь разъяснения:
  • item — наименования пункта меню (причём, если перед какой-либо буквой поставить символ подчёркивания, то можно будет, открыв меню, переместиться сразу к этому пункту, нажав клавишу с подчёркнутой буквой)
  • icon — иконка пункта (прописывать нужно полный путь)
  • cmd — команда запуска (можно оставить пустую строку, чтобы получился просто заголовок)
  • SEPARATOR — просто горизонтальная линия
  • Submenu — подменю (все пункты подменю должны начинаться с табуляции, подменю могут быть вложены друг в друга)
  • iconsize — размер иконок (заодно он влияет на ширину самих пунктов меню, чем больше иконка, тем толще пункты)
  • menupos — необязательный признак, указывающий координаты меню (если не указано, то меню появится под курсором)
  • Ну и стандартно линии, начинающиеся с # и пустые, игнорируются.
В общем-то, больше и добавить нечего. В дефолтном конфиге ещё есть пример пунктов, запускающих плеер с определёнными плейлистами — тоже интересное применение. Ну и в целом, понятно уже, что запускать так можно любую команду, любой скрипт, что угодно.




Видео Вконтакте бесплатно

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

  1. Сомнительного удобства штука... Хотя я знаю людей, которые оценят.

    ОтветитьУдалить
  2. Да вот и мне показалось, что сомнительного, но больше стандалонных меню не могу найти — это последнее, что попалось. Ну а раз всё же есть люди, которым может пригодиться, то тем более хорошо.

    ОтветитьУдалить
  3. Хорошее меню , но лучше fbpanel мне кажется нет для openbox, вот у меня такая она была

    http://www.youtube.com/watch?v=bbck7GFQTNI

    пока на xfce4 не перешел из за compiz, тоже все настраивается

    ОтветитьУдалить
  4. ухты, симпатяшка получилась такая.
    ну я безменюшный тинт юзаю, да оно мне и без надобности.

    А это ж так... у фбпанели меню само формируется по desktop-файлам, всё как надо, удобно.

    ОтветитьУдалить
  5. Да само, только сегодня два chrome получилось, удалил из /usr/share/applications/ google-chrome.desktop и готово.

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

    ОтветитьУдалить
  6. Ну это да, собственно ради трея и держу. А менюшка мне вот из xmenud понравилась. А так кому что, оно и хорошо что выбор есть.

    ОтветитьУдалить
  7. Что есть то есть, не прибавить не убавить =)

    А что кстати за окружение у тебя? ато если openbx там дефолтное меню практически такое же, но без значков

    ОтветитьУдалить
  8. Openbox. Там дефолтное меню не динамическое. В смысле его или периодически переформировывать с помощью menumaker надо, либо вручную за актуальностью следить. Там главная фишка меню не в том, чтоб все установленные программы содержать, а в том, что оно какие-то pipe-меню умеет. Я не разбиралась. Но это вроде как одна из основных фич опенбокса, как у флюкса умение окна в стопки складывать.

    ОтветитьУдалить
  9. Да в нем простой конфиг меню, просче чем в этом, но картинок нет, да и reconfigure есть и меню обновлено, но эт на любителя в общем на вкус и цвет, но мне кажется меньше процессов в системе, лучше

    ОтветитьУдалить
  10. Ну смари. При рекофигуре - это перечитываются конфиги опенбокса только. Соответственно просто перечитается всё что там в menu.xml понаписано. А свежеустановленные программы сами собой туда не пропишутся. А статичное меню чисто для программ вот и получается что мне не юзается — у меня с десяток значков запуска на панели и то я не все так уж часто юзаю, ещё команд не больше десятка из gmrun запускаю (там же история есть, просто кнопкой вверх листаю иногда). Опенбоксовское меню не открывала уже вечность, а xmenud это собственно и не держу запущенным. Просто хорошо иметь вариант, чтоб когда понадобиться посмотреть, чего там я понаставила из пользовательского софта - раз и в менюшечке всё аккуратненько.

    ОтветитьУдалить
  11. Ну к openbox можно menu установить debian и там отображется все насвете, кроме скайпа =) вот оно и генеруруется заново при каждом реконфигуре. да я тоже его не щелкаю fbpanel меню за глаза хватает, но зато теперь знаю, если надумаю что то с меню сделать, где посмотреть можно нормальный ман, спасибо

    ОтветитьУдалить
  12. Да не за что)
    Не знала что там оно генерируется, надо будет изучить подробнее этот вопрос

    ОтветитьУдалить
  13. >> http://www.youtube.com/watch?v=bbck7GFQTNI

    Чего только не увидишь в интернетах! о_0

    ОтветитьУдалить
  14. >Чего только не увидишь в интернетах! о_0

    и каких только не прочтешь 000_О

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