## 17 Menus ¶

VM uses Emacs’ menu bar and pop-up menus whenever they are available using which you can readily access VM’s commands. By default, VM puts a context-sensitive pop-up menu on mouse button 3 (usually the rightmost mouse button). If you don’t want this menu, set the variable `vm-popup-menu-on-mouse-3` to nil.

If you set `vm-use-menus` to nil, VM will not generate a menu bar for VM folder buffers and VM won’t use pop-up menus either. If you set `vm-use-menus` to ‘`1`’, VM will add a single ‘`VM`’ menu to the existing menu bar and provide various submenus under it for the VM operations.

By default, `vm-use-menus` is set to a list of symbols indicating which menus should appear in the menu bar. These menus will replace the standard Emacs menus whenever VM folder are being viewed. You can switch to the Emacs menu bar when necessary by clicking on the menu labelled `[Emacs]` (on some systems, thre will be a drop-down menu labelled `Emacs`). From the Emacs menu bar, you can return to the VM menu bar by clicking on the menu labelled `[VM]` (or under the drop-down menu labelled `VM`).

On some graphics toolkits, menu bar cannot have “buttons” that invoke immediate actions (such as `[Emacs]`). VM knows about some of those toolkits and automatically uses drop-down menus instead of buttons. If your system shows buttons but they are not operational, then you should set `vm-use-menubar-buttons` to nil in your init file. That will cause VM use to drop-down menus instead of buttons on the menu bar.

The available menus for the VM menubar are the following:

`dispose`

  This is menu of commands that are commonly used to dispose of a message. E.g. reply, print, save, delete.

`emacs`

  This provides a menu button labelled `[Emacs]` that causes the menu bar to change to the global Emacs menu bar. On that menu bar you will find a `[VM]` button that can return you to the VM menu bar.

`folder`

  This is a menu of folder related commands. You can visit a folder, save a folder, quit a folder and so on.

`help`

  This is a menu of commands that provide information for you if you don’t know what to do next.

`label`

  This is a menu of commands that let you add and remove message labels from messages.

`mark`

  This is a menu of commands that you can use to mark and unmark messages based on various criteria. See Marking Messages.

`motion`

  This is a menu of commands to move around inside messages and inside folders.

`send`

  This is a menu of commands you use to compose and send messages.

`sort`

  This is a menu of commands to sort a folder by various criteria.

`undo`

  This provides a menu button that invokes the `vm-undo` command.

`virtual`

  This is a menu of commands that let you visit and create virtual folders.

`nil`

  If nil appears in the list, it should appear exactly once. All menus after nil in the list will be displayed flushright in the menu bar.