2011-09-21 13 views
6

Uso la última versión de Ubuntu 11.04 que tiene el escritorio Unity. Estoy aprendiendo a usar Emacs 23.Cómo habilitar la barra de menú global para Emacs en Ubuntu (Unity 11.04)

Como sabes, Unity tiene panel superior. Quiero habilitar la barra de menú global para Emacs para poder ahorrar un valioso espacio en la pantalla. (Yo uso una computadora portátil de pantalla pequeña)

¿Cómo habilitar la barra de menú global? Su ayuda será muy apreciada. Gracias.

Respuesta

7

appmenu-gtk (que proporciona la barra de menús global) específicamente blacklisted emacs ya que no es play nicely together por lo que desafortunadamente probablemente no pueda usarlo con emacs.

+0

@ alexmurray 'lamentablemente es probable que no se puede utilizar con emacs' ¿Qué quieres decir? No te atrapé – chhantyal

+0

Como dije, los desarrolladores han incluido específicamente a los emacs en la lista negra para que no puedan mostrar su menú en la barra de menú global, por lo que no podrán usar emacs para usar la barra de menús global. – alexmurray

8
  1. Use su editor favorito para abrir este archivo: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so
  2. encontrar la palabra "emacs"
  3. cambio "emacs" a otra palabra
  4. Guardar el archivo
  5. sudo ldconfig

actualización: el archivo de "libappmenu.so" se movió a "/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/menuproxies" ahora en ubuntu 12.04.

+2

No tengo palabras. Esta es la respuesta más hackosa que he leído. Por favor, no intente esta corrección * a menos que comprenda las consecuencias de editar manualmente un ejecutable binario *. De lo contrario, es muy fácil corromper el archivo mencionado, lo que podría causar todo tipo de daños en su sistema. – rafalcieslak

2

forma más limpia de circument la lista negra:

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

cualquier nombre excepto "emacs" obras.

Es posible que tenga solución para la actualización de los menús de http://code.google.com/p/gnome2-globalmenu/issues/detail?id=357#c8 (no sé si sigue siendo pertinente, o si ese es el único problema):

(defun menuupdate() (menu-bar-mode -1) (menu-bar-mode 1)) 
(add-hook 'window-configuration-change-hook 'menuupdate) 
+0

Desafortunadamente, en Emacs 24, 'window-configuration-change-hook' parece ser llamado a su vez por' menu-bar-mode', por lo que tiene una recursión infinita. Lo siguiente parece funcionar para mí: '(add-hook 'menu-bar-update-hook (lambda() (interactivo) (progn (menu-bar-mode -1) (menu-bar- modo 1)))) ' –

+0

@ P-Nuts emacs se pone muy lento con los que, desafortunadamente, especialmente usan el modo malvado – Jesse

Cuestiones relacionadas