2011-09-21 102 views
6

我使用的是具有Unity桌面的最新Ubuntu 11.04。我正在学习使用Emacs 23.如你所知,Unity有顶级面板。我想为Emacs启用全局菜单栏,这样我就可以节省宝贵的屏幕空间。 (我用小屏笔记本)如何在Ubuntu上启用Emacs的全局菜单栏(Unity 11.04)

如何启用全局菜单栏?您的帮助将不胜感激。谢谢。

回答

7

appmenu-gtk(它提供了全局菜单栏)特别是blacklisted emacs,因为它不会play nicely together所以很不幸你可能不能在emacs中使用它。

+0

@ alexmurray“不幸的是你可能无法使用Emacs使用它”你什么意思?没有得到你。 – chhantyal

+0

正如我所说的,开发人员已经将emacs列入黑名单,无法在全局菜单栏中显示其菜单 - 因此您将无法使emacs使用全局菜单栏。 – alexmurray

8
  1. 使用你喜欢的编辑器打开这个文件:/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so
  2. 查找单词 “emacs的”
  3. 变化 “的emacs” 到其他字
  4. 保存文件
  5. sudo ldconfig

更新:现在在Ubuntu 12.04中,“libappmenu.so”文件已移至“/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/menuproxies”。

+2

我说不出话来。这是我读过的最骇人的答案。请不要尝试此修复*,除非您了解手动编辑二进制可执行文件的后果*!否则,很容易破坏上述文件,这可能会对您的系统造成各种损害! – rafalcieslak

2

到circument黑名单清洁方式:

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) 
+0

不幸的是,在Emacs 24中,'window-configuration-change-hook'似乎被'menu-bar-mode'调用,所以你有一个无限递归。以下内容似乎适用于我: '(add-hook'menu-bar-update-hook (lambda() (interactive) (progn(menu-bar-mode-1) (menu-bar-模式1))))' –

+0

@ P-Nuts emacs对那些很不友善,不幸的是,特别使用邪恶模式 – Jesse