Как включить глобальную панель меню для Emacs в Ubuntu (Unity 11.04)

Я использую последнюю версию Ubuntu 11.04 с рабочим столом Unity. Я учусь использовать Emacs 23.

Как вы знаете, в Unity есть верхняя панель. Я хочу включить глобальную панель меню для Emacs, чтобы сэкономить ценное место на экране. (Я использую ноутбук с маленьким экраном)

Как включить глобальную панель меню? Ваша помощь будет высоко оценена. Спасибо.


person chhantyal    schedule 21.09.2011    source источник


Ответы (3)


appmenu-gtk (который предоставляет строку глобального меню), в частности занесен в черный список emacs, так как он хорошо сочетается, поэтому к сожалению, вы, вероятно, не можете использовать его с emacs.

person alexmurray    schedule 21.09.2011
comment
@ alexmurray 'к сожалению, вы, вероятно, не можете использовать его с emacs', что вы имеете в виду? Не понял тебя. - person chhantyal; 21.09.2011
comment
Как я уже сказал, разработчики специально занесли emacs в черный список, чтобы он не мог показывать свое меню в глобальной строке меню, поэтому вы не сможете заставить emacs использовать глобальную строку меню. - person alexmurray; 22.09.2011

  1. Откройте этот файл в своем любимом редакторе: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so
  2. Найдите слово «emacs»
  3. Изменить "emacs" на другое слово
  4. Сохраните файл
  5. sudo ldconfig

обновление: файл «libappmenu.so» перемещен в «/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/menuproxy» теперь в Ubuntu 12.04.

person NeaghFoz    schedule 01.03.2012
comment
У меня нет слов. Это самый хакерский ответ, который я когда-либо читал. Пожалуйста, не пытайтесь это исправить, если вы не понимаете последствий ручного редактирования исполняемого файла! В противном случае очень легко повредить указанный файл, что может привести к повреждению вашей системы! - person rafalcieslak; 10.03.2016

Более чистый способ обойти черный список:

ln -s /usr/bin/emacs somewhere_on_PATH/emacs-with-global-menu

работает любое имя, кроме "emacs".

Вам может понадобиться временное решение для обновления меню с http://code.google.com/p/gnome2-globalmenu/issues/detail?id=357#c8 (не знаю, актуально ли это до сих пор или это единственная проблема):

(defun menuupdate () (menu-bar-mode -1) (menu-bar-mode 1)) 
(add-hook 'window-configuration-change-hook 'menuupdate)
person Beni Cherniavsky-Paskin    schedule 15.05.2012
comment
К сожалению, в Emacs 24 window-configuration-change-hook вызывается, в свою очередь, menu-bar-mode, так что получается бесконечная рекурсия. Однако у меня работает следующее: (add-hook 'menu-bar-update-hook (lambda () (interactive) (progn (menu-bar-mode -1) (menu-bar-mode 1)))) - person P-Nuts; 08.06.2015
comment
@P-Nuts emacs сильно тормозит с теми, кто, к сожалению, специально использует злой режим - person Jesse; 22.07.2015