This mode focuses on providing operations similar to GUI context menus.
It not only activates commands, it also supports operations on Region.

Put the following into your .emacs file (~/.emacs.d/init.el) to enable context menu.

    (right-click-context-mode 1)

This function does not depend on GUI, it is fully available on terminal.
The menu is launched by "right click" (<mouse-3>) by default, but you can assign any key.

    (define-key right-click-context-mode-map (kbd "C-c :") 'right-click-context-menu)

This menu can be constructed with a simple DSL based on S-expression.
Additional information can be found in README and implementation code.

## Context-menu construction DSL

For example, the following code adds undo and redo to the beginning of the context menu.

    (setq right-click-context-global-menu-tree
          (append
           '((\"Undo\" :call (if (fboundp 'undo-tree-undo) (undo-tree-undo) (undo-only)))
             (\"Redo\"
             :call (if (fboundp 'undo-tree-redo) (undo-tree-redo))
             :if (and (fboundp 'undo-tree-redo) (undo-tree-node-previous (undo-tree-current buffer-undo-tree)))))
           right-click-context-global-menu-tree))