ee-menubar - categorized access to Emacs menu-bar


This extension builds a categorized menu of Emacs commands from Emacs menu bar, where submenus are transformed into hierarchical categories, and menu elements - into records.

Actually, this extension replaces the graphical menus (i.e. X Window menu bar and other menu types in other graphical environments). Browsing the menu items in the Emacs text buffer is much more convenient than in the graphical menus. Functionality and extensibility of graphical menus are very limited. But in the text-mode menus displayed in regular Emacs buffers all Emacs standard functionality is available for operating on menu items: all standard key bindings are available for working with menu items in text mode, menu items can be searched in the Emacs buffer, text of menu items can be easily copied into clipboard, all standard point movement commands are available in the Emacs buffer and so on. And text menus work also on text-only terminals with no mouse.

Some Emacs packages already provide text mode menus. For example, package tmm has the same goal to replace graphical menus by text mode menus, but ee-menubar provides more capabilities: it can collapse and expand parts of menus and save their state between successive menu invocations; it can mark recently selected menu items by different colors to help to more quickly locate them among the other menu items; it can mark frequently used menu items by another mark or color; menu items can be categorized by different criteria, etc. Read also why tmm is "broken", ee-menubar fixes all of the mentioned shortcomings of tmm.

Default views

By Category

This view extracts menu tree from Emacs internals and transforms it into category tree. Menu items in every submenu retain the same sorting order at which they appear in the graphical menu.

c-tree-builder builds category tree from menu tree extracted from Emacs internals
c-printer prints submenu title
r-printer prints menu item title
post-generate hides submenus
r-select calls the command bound to menu item
- File
   Open File...
   Open Directory...
   Insert File...
   Close (current buffer)
   Save (current buffer)
   Save Buffer As...
   Revert Buffer
   Recover Crashed Session...
   Print Buffer
   Print Region
   Postscript Print Buffer
   Postscript Print Region
   Postscript Print Buffer (B+W)
   Postscript Print Region (B+W)
   Split Window
   Unsplit Windows
   New Frame
   New Frame on Display...
   Delete Frame
   Exit Emacs
+ Edit
+ Options
+ Buffers
+ Tools
- Help
   Emacs Tutorial
   Emacs Tutorial (choose language)...
   Emacs FAQ
   Emacs News
   Emacs Known Problems
   Read the Emacs Manual
   Ordering Manuals
   Send Bug Report...
 - Manuals
    Find Key in Manual
    Find Command in Manual
    Browse Manuals with Info
    Read Man Page...
 + Describe
   Find Emacs Packages...
   Show Emacs Version
   Find Extra Packages
   Getting New Versions
   Copying Conditions
   Emacs Psychiatrist
--:%%  *ee-menubar*    (ee-menubar)--L1--C0--All--------------------------


This view alphabetically sorts menu items collected from all submenus.

r-sorter sorts alphabetically by menu item name
r-printer prints menu item title
r-select calls a command bound to menu item
  Advanced Search/Replace
  Apply Patch
  Apropos Commands...
  Apropos Variables...
  Background Color
  Browse Customization Groups
  Browse Manuals with Info
  Case-Insensitive Search
  Change Dictionary...
  Check In/Out
  Checkout Module
--:%%  *ee-menubar*    (ee-menubar)--L1--C0--Top--------------------------


  • Add more views
  • Show keybindings in the view
  • Use :enable, :visible and other keywords